eth: bnxt: request unconditional ops lock
authorStanislav Fomichev <sdf@fomichev.me>
Sun, 9 Mar 2025 21:58:50 +0000 (14:58 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 12 Mar 2025 20:19:15 +0000 (13:19 -0700)
netdev_lock_ops conditionally grabs instance lock when queue_mgmt_ops
is defined. However queue_mgmt_ops support is signaled via FW
so we can sometimes boot without queue_mgmt_ops being set.
This will result in bnxt running without instance lock which
the driver now heavily depends on. Set request_ops_lock to true
unconditionally to always request netdev instance lock.

Fixes: 004b5008016a ("eth: bnxt: remove most dependencies on RTNL")
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250309215851.2003708-2-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 66dfaf7e37766c9a69990228eb66effd233c493b..08ac01d6a5097c9b47e88749dbca3043ae87c4ff 100644 (file)
@@ -16613,6 +16613,7 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                bp->rss_cap |= BNXT_RSS_CAP_MULTI_RSS_CTX;
        if (BNXT_SUPPORTS_QUEUE_API(bp))
                dev->queue_mgmt_ops = &bnxt_queue_mgmt_ops;
+       dev->request_ops_lock = true;
 
        rc = register_netdev(dev);
        if (rc)