Subject: [PATCH net v5 0/2] net: cpsw: Execute ndo_set_rx_mode callback in a work queue

From: Kevin Hao <[email-masked]>
Date: Tue, 03 Feb 2026 10:18:29 +0800

These two patches resolve an RTNL assertion call trace issue in both the legacy
and new cpsw drivers.

Thanks,
Kevin

---
Changes in v5:
- Apply the same fix to the legacy cpsw driver as well.

- Use goto label in cpsw_ndo_set_rx_mode_work() for the undo path as
  suggested by Jakub.

- Move the disable_work_sync() call to after unregister_netdev() as
  suggested by Jakub.

- Link to v4: https://lore.kernel.org/r/[email-masked]

Changes in v4:
- Using schedule_work() instead of creating a dedicated workqueue.

- Link to v3: https://lore.kernel.org/r/[email-masked]

Changes in v3:
- Resolve the deadlock issue identified in the AI review [2]
  by moving the netif_running() check under the RTNL lock and removing the
  cancel_work_sync() call in cpsw_ndo_stop().

- Link to v2: https://lore.kernel.org/r/[email-masked]

Changes in v2:
- Addresses the issue identified in the AI review [1]:
  - Adds a netif_running() check in cpsw_ndo_set_rx_mode_work()
  - Cancels the rx_mode_work in cpsw_ndo_stop()

- Link to v1: https://lore.kernel.org/r/[email-masked]

[1] https://netdev-ai.bots.linux.dev/ai-review.html?id=bd885e1e-1aed-4755-ad60-7150737ad0f5
[2] https://netdev-ai.bots.linux.dev/ai-review.html?id=c9fc3cf8-a06c-4cb8-b26b-910e775951a0

---
Kevin Hao (2):
      net: cpsw_new: Execute ndo_set_rx_mode callback in a work queue
      net: cpsw: Execute ndo_set_rx_mode callback in a work queue

 drivers/net/ethernet/ti/cpsw.c      | 41 +++++++++++++++++++++++++++++++------
 drivers/net/ethernet/ti/cpsw_new.c  | 34 +++++++++++++++++++++++++-----
 drivers/net/ethernet/ti/cpsw_priv.h |  1 +
 3 files changed, 65 insertions(+), 11 deletions(-)
---
base-commit: 193579fe01389bc21aff0051d13f24e8ea95b47d
change-id: 20260123-bbb-dc3675f671d0

Best regards,
-- 
Kevin Hao <[email-masked]>