When registering a new PCI device, the device->name field stored the user-provided string from devargs (e.g., "08:00.0" or "0000:08:00.0"). This approach led to inconsistencies when registering new devices.
This patch fix this issue by saving the parsed PCI in device->name, so when a new PCI device is registering the name displayed in the device list will be the parsed version. Fixes: 23eaa9059ec2 ("bus/pci: use given name as generic name") Cc: sta...@dpdk.org Signed-off-by: Shani Peretz <shper...@nvidia.com> --- drivers/bus/pci/pci_common.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c index 1173f0887c..70faae4e44 100644 --- a/drivers/bus/pci/pci_common.c +++ b/drivers/bus/pci/pci_common.c @@ -99,21 +99,11 @@ pci_common_set(struct rte_pci_device *dev) /* Each device has its internal, canonical name set. */ rte_pci_device_name(&dev->addr, dev->name, sizeof(dev->name)); + dev->device.name = dev->name; + devargs = pci_devargs_lookup(&dev->addr); dev->device.devargs = devargs; - /* When using a blocklist, only blocked devices will have - * an rte_devargs. Allowed devices won't have one. - */ - if (devargs != NULL) - /* If an rte_devargs exists, the generic rte_device uses the - * given name as its name. - */ - dev->device.name = dev->device.devargs->name; - else - /* Otherwise, it uses the internal, canonical form. */ - dev->device.name = dev->name; - if (dev->bus_info != NULL || asprintf(&dev->bus_info, "vendor_id=%"PRIx16", device_id=%"PRIx16, dev->id.vendor_id, dev->id.device_id) != -1) -- 2.34.1