13/10/2020 00:01, Jim Harris: > When a device is inserted into an existing BDF slot > that has not been probed, we must overwrite the old > PCI ID with the ID of the new function. Otherwise > we may not probe the function with the correct driver, > if at all. > > Signed-off-by: Jim Harris <james.r.har...@intel.com> > --- > --- a/drivers/bus/pci/linux/pci.c > +++ b/drivers/bus/pci/linux/pci.c > @@ -352,6 +352,7 @@ pci_scan_one(const char *dirname, const struct > rte_pci_addr *addr) > if (!rte_dev_is_probed(&dev2->device)) { > dev2->kdrv = dev->kdrv; > dev2->max_vfs = dev->max_vfs; > + dev2->id = dev->id;
This simple assignment looks nicer than memcpy. Thanks for this change. [...] > if (dev2->kdrv != dev->kdrv || > - dev2->max_vfs != dev->max_vfs) > + dev2->max_vfs != dev->max_vfs || > + dev2->id != dev->id) Unfortunately comparison of structs is not supported. It seems your original memcmp is right.