Commit e4546c6
eth: bnxt: fix deadlock in the mgmt_ops
When queue is being reset, callbacks of mgmt_ops are called by
netdev_nl_bind_rx_doit().
The netdev_nl_bind_rx_doit() first acquires netdev_lock() and then calls
callbacks.
So, mgmt_ops callbacks should not acquire netdev_lock() internaly.
The bnxt_queue_{start | stop}() calls napi_{enable | disable}() but they
internally acquire netdev_lock().
So, deadlock occurs.
To avoid deadlock, napi_{enable | disable}_locked() should be used
instead.
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Fixes: cae03e5 ("net: hold netdev instance lock during queue operations")
Link: https://patch.msgid.link/20250402133123.840173-1-ap420073@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>1 parent e5ddf19 commit e4546c6
1 file changed
+3
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15909 | 15909 | | |
15910 | 15910 | | |
15911 | 15911 | | |
15912 | | - | |
| 15912 | + | |
15913 | 15913 | | |
15914 | 15914 | | |
15915 | 15915 | | |
| |||
15931 | 15931 | | |
15932 | 15932 | | |
15933 | 15933 | | |
15934 | | - | |
| 15934 | + | |
15935 | 15935 | | |
15936 | 15936 | | |
15937 | 15937 | | |
| |||
15971 | 15971 | | |
15972 | 15972 | | |
15973 | 15973 | | |
15974 | | - | |
| 15974 | + | |
15975 | 15975 | | |
15976 | 15976 | | |
15977 | 15977 | | |
| |||
0 commit comments