On Fri, 5 Feb 2021 17:37:32 -0800 Edwin Peer wrote: > Prevent netif_tx_disable() running concurrently with dev_watchdog() by > taking the device global xmit lock. Otherwise, the recommended: > > netif_carrier_off(dev); > netif_tx_disable(dev); > > driver shutdown sequence can happen after the watchdog has already > checked carrier, resulting in possible false alarms. This is because > netif_tx_lock() only sets the frozen bit without maintaining the locks > on the individual queues. > > Fixes: c3f26a269c24 ("netdev: Fix lockdep warnings in multiqueue > configurations.") > Signed-off-by: Edwin Peer <edwin.p...@broadcom.com>
Reviewed-by: Jakub Kicinski <k...@kernel.org> Even though using the dev->tx_global_lock as a barrier is not very clean in itself the thinking is that this restores previous semantics with deeper changes.