mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
devlink: hold the instance lock during eswitch_mode callbacks
Make the devlink core hold the instance lock during eswitch_mode callbacks. Cheat in case of mlx5 (see the cover letter). Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
aff3a92509
commit
14e426bf1a
@@ -615,22 +615,16 @@ static int nsim_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct nsim_dev *nsim_dev = devlink_priv(devlink);
|
||||
int err = 0;
|
||||
|
||||
devl_lock(devlink);
|
||||
if (mode == nsim_dev->esw_mode)
|
||||
goto unlock;
|
||||
return 0;
|
||||
|
||||
if (mode == DEVLINK_ESWITCH_MODE_LEGACY)
|
||||
err = nsim_esw_legacy_enable(nsim_dev, extack);
|
||||
else if (mode == DEVLINK_ESWITCH_MODE_SWITCHDEV)
|
||||
err = nsim_esw_switchdev_enable(nsim_dev, extack);
|
||||
else
|
||||
err = -EINVAL;
|
||||
return nsim_esw_legacy_enable(nsim_dev, extack);
|
||||
if (mode == DEVLINK_ESWITCH_MODE_SWITCHDEV)
|
||||
return nsim_esw_switchdev_enable(nsim_dev, extack);
|
||||
|
||||
unlock:
|
||||
devl_unlock(devlink);
|
||||
return err;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int nsim_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode)
|
||||
|
||||
Reference in New Issue
Block a user