mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 06:20:53 +07:00
devlink: Use controller while building phys_port_name
Now that controller number attribute is available, use it when building phsy_port_name for external controller ports. An example devlink port and representor netdev name consist of controller annotation for external controller with controller number = 1, for a VF 1 of PF 0: $ devlink port show pci/0000:06:00.0/2 pci/0000:06:00.0/2: type eth netdev ens2f0c1pf0vf1 flavour pcivf controller 1 pfnum 0 vfnum 1 external true splittable false function: hw_addr 00:00:00:00:00:00 $ devlink port show pci/0000:06:00.0/2 -jp { "port": { "pci/0000:06:00.0/2": { "type": "eth", "netdev": "ens2f0c1pf0vf1", "flavour": "pcivf", "controller": 1, "pfnum": 0, "vfnum": 1, "external": true, "splittable": false, "function": { "hw_addr": "00:00:00:00:00:00" } } } } Controller number annotation is skipped for non external controllers to maintain backward compatibility. Signed-off-by: Parav Pandit <parav@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3a2d9588c4
commit
66b17082d1
@ -7793,9 +7793,23 @@ static int __devlink_port_phys_port_name_get(struct devlink_port *devlink_port,
|
||||
WARN_ON(1);
|
||||
return -EINVAL;
|
||||
case DEVLINK_PORT_FLAVOUR_PCI_PF:
|
||||
if (attrs->pci_pf.external) {
|
||||
n = snprintf(name, len, "c%u", attrs->pci_pf.controller);
|
||||
if (n >= len)
|
||||
return -EINVAL;
|
||||
len -= n;
|
||||
name += n;
|
||||
}
|
||||
n = snprintf(name, len, "pf%u", attrs->pci_pf.pf);
|
||||
break;
|
||||
case DEVLINK_PORT_FLAVOUR_PCI_VF:
|
||||
if (attrs->pci_vf.external) {
|
||||
n = snprintf(name, len, "c%u", attrs->pci_vf.controller);
|
||||
if (n >= len)
|
||||
return -EINVAL;
|
||||
len -= n;
|
||||
name += n;
|
||||
}
|
||||
n = snprintf(name, len, "pf%uvf%u",
|
||||
attrs->pci_vf.pf, attrs->pci_vf.vf);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user