Commit e4546c64 authored by Taehee Yoo's avatar Taehee Yoo Committed by Jakub Kicinski
Browse files

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: default avatarTaehee Yoo <ap420073@gmail.com>
Acked-by: default avatarStanislav Fomichev <sdf@fomichev.me>
Reviewed-by: default avatarMichael Chan <michael.chan@broadcom.com>
Fixes: cae03e5b ("net: hold netdev instance lock during queue operations")
Link: https://patch.msgid.link/20250402133123.840173-1-ap420073@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e5ddf19d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment