bnxt_en: Fix netdev locking in ULP IRQ functions
authorMichael Chan <michael.chan@broadcom.com>
Mon, 19 May 2025 20:41:28 +0000 (13:41 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 21 May 2025 01:52:11 +0000 (18:52 -0700)
commitaed031da7e8cf6e31816a34afde961fbe0305fea
tree0803bb26a9038f8c4496df57353fff690e4007e6
parent48a62855073bfbdf8f8a1e06e7f97fd68e39422c
bnxt_en: Fix netdev locking in ULP IRQ functions

netdev_lock is already held when calling bnxt_ulp_irq_stop() and
bnxt_ulp_irq_restart().  When converting rtnl_lock to netdev_lock,
the original code was rtnl_dereference() to indicate that rtnl_lock
was already held.  rcu_dereference_protected() is the correct
conversion after replacing rtnl_lock with netdev_lock.

Add a new helper netdev_lock_dereference() similar to
rtnl_dereference().

Fixes: 004b5008016a ("eth: bnxt: remove most dependencies on RTNL")
Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250519204130.3097027-2-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
include/net/netdev_lock.h