]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5: Fix missing devlink lock in SRIOV enable error path
authorShay Drory <shayd@nvidia.com>
Tue, 24 Feb 2026 11:46:51 +0000 (13:46 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 26 Feb 2026 04:01:44 +0000 (20:01 -0800)
The cited commit miss to add locking in the error path of
mlx5_sriov_enable(). When pci_enable_sriov() fails,
mlx5_device_disable_sriov() is called to clean up. This cleanup function
now expects to be called with the devlink instance lock held.

Add the missing devl_lock(devlink) and devl_unlock(devlink)

Fixes: 84a433a40d0e ("net/mlx5: Lock mlx5 devlink reload callbacks")
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260224114652.1787431-5-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/sriov.c

index a2fc937d54617c28781e1171e7ca94f3c6d0efe3..172862a70c70d29f3a78e686749903e43fcef335 100644 (file)
@@ -193,7 +193,9 @@ static int mlx5_sriov_enable(struct pci_dev *pdev, int num_vfs)
        err = pci_enable_sriov(pdev, num_vfs);
        if (err) {
                mlx5_core_warn(dev, "pci_enable_sriov failed : %d\n", err);
+               devl_lock(devlink);
                mlx5_device_disable_sriov(dev, num_vfs, true, true);
+               devl_unlock(devlink);
        }
        return err;
 }