net/mlx5: Register SF resource on satellite PF ports

Extend port-level resource registration to satellite PF vports.

Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20260521110843.367329-10-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Or Har-Toov 2026-05-21 14:08:40 +03:00 committed by Jakub Kicinski
parent e020a70672
commit ac338d8011

View File

@ -176,14 +176,28 @@ static const struct devlink_port_ops mlx5_esw_dl_sf_port_ops = {
};
static int mlx5_esw_devlink_port_res_register(struct mlx5_eswitch *esw,
struct devlink_port *dl_port)
struct devlink_port *dl_port,
u16 vport_num)
{
struct devlink_resource_size_params size_params;
struct mlx5_core_dev *dev = esw->dev;
u16 max_sfs, sf_base_id;
int err;
err = mlx5_esw_sf_max_hpf_functions(dev, &max_sfs, &sf_base_id);
if (vport_num != MLX5_VPORT_HOST_PF &&
!mlx5_esw_is_spf_vport(esw, vport_num))
return 0;
if (vport_num == MLX5_VPORT_HOST_PF) {
err = mlx5_esw_sf_max_hpf_functions(dev, &max_sfs,
&sf_base_id);
} else {
int spf_idx = mlx5_esw_spf_vport_to_idx(esw, vport_num);
err = mlx5_esw_sf_max_spf_functions(dev, spf_idx, &max_sfs,
&sf_base_id);
}
if (err)
return err;
@ -232,14 +246,11 @@ int mlx5_esw_offloads_devlink_port_register(struct mlx5_eswitch *esw, struct mlx
if (err)
goto rate_err;
if (vport_num == MLX5_VPORT_HOST_PF) {
err = mlx5_esw_devlink_port_res_register(esw,
&dl_port->dl_port);
if (err)
mlx5_core_dbg(dev,
"Failed to register port resources: %d\n",
err);
}
err = mlx5_esw_devlink_port_res_register(esw, &dl_port->dl_port,
vport_num);
if (err)
mlx5_core_dbg(dev, "Failed to register port resources: %d\n",
err);
return 0;