linux/drivers/net/ethernet/sun
Jakub Kicinski 5de5aeb98f eth: sungem: remove .ndo_poll_controller to avoid deadlocks
[ Upstream commit ac0a230f71 ]

Erhard reports netpoll warnings from sungem:

  netpoll_send_skb_on_dev(): eth0 enabled interrupts in poll (gem_start_xmit+0x0/0x398)
  WARNING: CPU: 1 PID: 1 at net/core/netpoll.c:370 netpoll_send_skb+0x1fc/0x20c

gem_poll_controller() disables interrupts, which may sleep.
We can't sleep in netpoll, it has interrupts disabled completely.
Strangely, gem_poll_controller() doesn't even poll the completions,
and instead acts as if an interrupt has fired so it just schedules
NAPI and exits. None of this has been necessary for years, since
netpoll invokes NAPI directly.

Fixes: fe09bb6190 ("sungem: Spring cleaning and GRO support")
Reported-and-tested-by: Erhard Furtner <erhard_f@mailbox.org>
Link: https://lore.kernel.org/all/20240428125306.2c3080ef@legion
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20240508134504.3560956-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-06-12 11:11:51 +02:00
..
cassini.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-05-18 14:39:34 -07:00
cassini.h ethernet/sun: fix repeated words in comments 2022-07-01 20:13:19 -07:00
Kconfig net: sun: SUNVNET_COMMON should depend on INET 2021-09-28 13:20:21 +01:00
ldmvsw.c ethernet: ldmvsw: mark ldmvsw_open() static 2023-08-11 18:24:02 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
niu.c net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
niu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sunbmac.c net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
sunbmac.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sungem.c eth: sungem: remove .ndo_poll_controller to avoid deadlocks 2024-06-12 11:11:51 +02:00
sungem.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sunhme.c net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
sunhme.h net: sunhme: Remove residual polling code 2023-03-27 08:41:56 +01:00
sunqe.c net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
sunqe.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sunvnet.c ethernet: sun: add check for the mdesc_grab() 2023-03-17 07:47:39 +00:00
sunvnet_common.c sunvnet: fix sparc64 build error after gso code split 2023-06-15 22:47:13 -07:00
sunvnet_common.h netdev: pass the stuck queue to the timeout handler 2019-12-12 21:38:57 -08:00