net/mlx5e: Fix pfnum in devlink port attribute
Cited patch missed to extract PCI pf number accurately for PF and VF port flavour. It considered PCI device + function number. Due to this, device having non zero device number shown large pfnum. Hence, use only PCI function number; to avoid similar errors, derive pfnum one time for all port flavours. Fixes: f60f315d339e ("net/mlx5e: Register devlink ports for physical link, PCI PF, VFs") Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Parav Pandit <parav@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
d5a3c2b640
commit
7482d9cb5b
@ -2050,29 +2050,30 @@ static int register_devlink_port(struct mlx5_core_dev *dev,
|
||||
struct mlx5_eswitch_rep *rep = rpriv->rep;
|
||||
struct netdev_phys_item_id ppid = {};
|
||||
unsigned int dl_port_index = 0;
|
||||
u16 pfnum;
|
||||
|
||||
if (!is_devlink_port_supported(dev, rpriv))
|
||||
return 0;
|
||||
|
||||
mlx5e_rep_get_port_parent_id(rpriv->netdev, &ppid);
|
||||
pfnum = PCI_FUNC(dev->pdev->devfn);
|
||||
|
||||
if (rep->vport == MLX5_VPORT_UPLINK) {
|
||||
devlink_port_attrs_set(&rpriv->dl_port,
|
||||
DEVLINK_PORT_FLAVOUR_PHYSICAL,
|
||||
PCI_FUNC(dev->pdev->devfn), false, 0,
|
||||
pfnum, false, 0,
|
||||
&ppid.id[0], ppid.id_len);
|
||||
dl_port_index = vport_to_devlink_port_index(dev, rep->vport);
|
||||
} else if (rep->vport == MLX5_VPORT_PF) {
|
||||
devlink_port_attrs_pci_pf_set(&rpriv->dl_port,
|
||||
&ppid.id[0], ppid.id_len,
|
||||
dev->pdev->devfn);
|
||||
pfnum);
|
||||
dl_port_index = rep->vport;
|
||||
} else if (mlx5_eswitch_is_vf_vport(dev->priv.eswitch,
|
||||
rpriv->rep->vport)) {
|
||||
devlink_port_attrs_pci_vf_set(&rpriv->dl_port,
|
||||
&ppid.id[0], ppid.id_len,
|
||||
dev->pdev->devfn,
|
||||
rep->vport - 1);
|
||||
pfnum, rep->vport - 1);
|
||||
dl_port_index = vport_to_devlink_port_index(dev, rep->vport);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user