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

Reply via email to