#ifdef CONFIG_BNXT_SRIOV
        init_waitqueue_head(&bp->sriov_cfg_wait);
-       mutex_init(&bp->sriov_lock);
 #endif
        if (BNXT_SUPPORTS_TPA(bp)) {
                bp->gro_func = bnxt_gro_func_5730x;
 
        wait_queue_head_t       sriov_cfg_wait;
        bool                    sriov_cfg;
 #define BNXT_SRIOV_CFG_WAIT_TMO        msecs_to_jiffies(10000)
-
-       /* lock to protect VF-rep creation/cleanup via
-        * multiple paths such as ->sriov_configure() and
-        * devlink ->eswitch_mode_set()
-        */
-       struct mutex            sriov_lock;
 #endif
 
 #if BITS_PER_LONG == 32
 
                return;
 
        /* synchronize VF and VF-rep create and destroy */
-       mutex_lock(&bp->sriov_lock);
+       devl_lock(bp->dl);
        bnxt_vf_reps_destroy(bp);
 
        if (pci_vfs_assigned(bp->pdev)) {
                /* Free the HW resources reserved for various VF's */
                bnxt_hwrm_func_vf_resource_free(bp, num_vfs);
        }
-       mutex_unlock(&bp->sriov_lock);
+       devl_unlock(bp->dl);
 
        bnxt_free_vf_resources(bp);
 
 
        struct bnxt *bp = bnxt_get_bp_from_dl(devlink);
        int rc = 0;
 
-       mutex_lock(&bp->sriov_lock);
+       devl_lock(devlink);
        if (bp->eswitch_mode == mode) {
                netdev_info(bp->dev, "already in %s eswitch mode\n",
                            mode == DEVLINK_ESWITCH_MODE_LEGACY ?
                goto done;
        }
 done:
-       mutex_unlock(&bp->sriov_lock);
+       devl_unlock(devlink);
        return rc;
 }