lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANn89iKpZ79f7nP5HtBfmN_m_KyO0MZ5m2Z53RNtQ5Q=e3WC4w@mail.gmail.com>
Date: Wed, 8 May 2024 16:32:36 +0200
From: Eric Dumazet <edumazet@...gle.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: davem@...emloft.net, netdev@...r.kernel.org, pabeni@...hat.com, 
	Erhard Furtner <erhard_f@...lbox.org>, robh@...nel.org, elder@...nel.org, wei.fang@....com, 
	bhupesh.sharma@...aro.org, benh@...nel.crashing.org
Subject: Re: [PATCH net] eth: sungem: remove .ndo_poll_controller to avoid deadlocks

On Wed, May 8, 2024 at 3:45 PM Jakub Kicinski <kuba@...nel.org> wrote:
>
> 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: fe09bb619096 ("sungem: Spring cleaning and GRO support")
> Reported-and-tested-by: Erhard Furtner <erhard_f@...lbox.org>
> Link: https://lore.kernel.org/all/20240428125306.2c3080ef@legion
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>

Reviewed-by: Eric Dumazet <edumazet@...gle.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ