Remove the restriction blocking SD on embedded CPU PFs (ECPF), enabling
SD functionality on BlueField DPUs. Remove the blocker preventing SD
devices from transitioning to switchdev mode.
The infrastructure added in earlier patches properly handles this case.
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20260612113904.537595-16-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
if (esw_mode_from_devlink(mode, &mlx5_mode))
return -EINVAL;
- if (mlx5_mode == MLX5_ESWITCH_OFFLOADS && mlx5_get_sd(esw->dev)) {
- NL_SET_ERR_MSG_MOD(extack,
- "Can't change E-Switch mode to switchdev when multi-PF netdev (Socket Direct) is configured.");
- return -EPERM;
- }
-
/* Avoid try_lock, active/inactive mode change is not restricted */
if (mlx5_devlink_switchdev_active_mode_change(esw, mode))
return 0;
if (!mlx5_core_is_pf(dev))
return false;
- /* Block on embedded CPU PFs */
- if (mlx5_core_is_ecpf(dev))
- return false;
-
err = mlx5_query_nic_vport_sd_group(dev, &sd_group);
if (err || !sd_group)
return false;
if (!mlx5_core_is_pf(dev))
return 0;
- /* Block on embedded CPU PFs */
- if (mlx5_core_is_ecpf(dev))
- return 0;
-
err = mlx5_query_nic_vport_sd_group(dev, &sd_group);
if (err)
return err;