Following the work from Gaetan, who based his work on my original series. -- v7
* Revert removal of RTE_VERIFY on find_device operation since a bus that isn't able to even iterate its devices is pointless * Revert plug() changes that have been introduced in v3: int (*rte_bus_plug_t)(struct rte_device *dev, const char *devargs); * Revert pointless reordering of start argument for bus iterator functions * Add fslmc bus find_device operation * Add support to find a bus by its name * Add EAL hotplug API: int rte_eal_hotplug_add(const char *busname, const char *devname, const char *devargs); int rte_eal_hotplug_remove(const char *busname, const char *devname); * Keep rte_eal_dev_attach() backwards compatible and support hotplug of PCI and virtual devices only * Add back patch "ethdev: use embedded rte_device to detach driver" which is critical for correctly detaching the correct low-level device Gaetan Rivet (1): pci: implement hotplug bus operation Jan Blunck (14): bus: add bus iterator to find a bus bus: add find_device bus operation vdev: implement find_device bus operation pci: implement find_device bus operation bus/fslmc: implement find_device bus operation bus: add helper to find which bus holds a device bus: add bus iterator to find a device bus: require buses to implement find_device operation bus: add rte_bus_find_by_name bus: introduce device plug/unplug functionality vdev: implement unplug bus operation eal: add hotplug add/remove functions dev: use new hotplug API in attach / detach ethdev: Use embedded rte_device to detach driver drivers/bus/fslmc/fslmc_bus.c | 23 ++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 6 + lib/librte_eal/common/eal_common_bus.c | 74 ++++++++++++ lib/librte_eal/common/eal_common_dev.c | 149 ++++++++++++++++++++---- lib/librte_eal/common/eal_common_pci.c | 55 +++++++++ lib/librte_eal/common/eal_common_vdev.c | 35 ++++++ lib/librte_eal/common/include/rte_bus.h | 137 ++++++++++++++++++++++ lib/librte_eal/common/include/rte_dev.h | 57 +++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 5 + lib/librte_ether/rte_ethdev.c | 3 +- 10 files changed, 521 insertions(+), 23 deletions(-) -- 2.9.4