This is a followup of the previous bus refactoring. See https://inbox.dpdk.org/dev/CAJFAV8zvFpLwz8SY8DUUezyJyM43eRZ17Yj30ex808eHC4ZE=g...@mail.gmail.com/.
This series refactors the bus cleanup infrastructure to reduce code duplication and fix resource leaks in several bus drivers. It should address the leak Thomas pointed at. The first part of the series (patches 1-6) addresses several bugs and inconsistencies: - Documentation and log message inconsistencies from earlier bus refactoring - Device list management issues in dma/idxd and bus/vdev - Resource leaks in PCI and VMBUS bus cleanup (mappings and interrupts) - Deferred interrupt allocation to probe time (VMBUS) The core infrastructure changes (patches 7-8) introduce the generic cleanup framework: - Refactors unplug operations to be the counterpart of probe_device - Implements rte_bus_generic_cleanup() to centralize cleanup logic - Adds .free_device operation to struct rte_bus The final patches (9-10) convert the VMBUS bus to use the generic cleanup helper. After this series, most buses use the generic cleanup helper, eliminating duplicated code and ensuring consistent cleanup behavior across the codebase. NXP bus drivers require more (leak) fixes and refactoring and are left untouched. -- David Marchand Changes since v1: - dropped all changes on DPAA and FSLMC bus, - added one more cleanup on the first patch, - changed coding style in rte_vdev_init, - implemented explicit .free_device instead of hack for calling free(), - reordered interrupt handle allocation in VMBUS bus, David Marchand (10): bus: fix reference to plug callback dma/idxd: remove next pointer in bus specific device bus/vdev: remove driver setting in probe bus/pci: fix mapping leak in bus cleanup bus/vmbus: fix interrupt leak in cleanup bus/vmbus: allocate interrupt during probing bus: align unplug with device probe bus: implement cleanup in EAL bus/vmbus: store name in bus specific device bus/vmbus: support unplug doc/guides/prog_guide/device_hotplug.rst | 20 ++++--- doc/guides/rel_notes/release_26_07.rst | 4 ++ drivers/bus/auxiliary/auxiliary_common.c | 54 ++++------------- drivers/bus/cdx/cdx.c | 29 ++------- drivers/bus/dpaa/dpaa_bus.c | 4 +- drivers/bus/fslmc/fslmc_bus.c | 9 +-- drivers/bus/ifpga/ifpga_bus.c | 67 ++++++--------------- drivers/bus/pci/pci_common.c | 68 +++------------------ drivers/bus/platform/platform.c | 26 +++----- drivers/bus/uacce/uacce.c | 59 +++--------------- drivers/bus/vdev/vdev.c | 76 +++++++++--------------- drivers/bus/vmbus/bus_vmbus_driver.h | 1 + drivers/bus/vmbus/linux/vmbus_bus.c | 16 +---- drivers/bus/vmbus/vmbus_common.c | 58 +++++++++++------- drivers/dma/idxd/idxd_bus.c | 1 - lib/eal/common/eal_common_bus.c | 33 +++++++++- lib/eal/common/eal_common_dev.c | 10 ++-- lib/eal/include/bus_driver.h | 51 +++++++++++----- 18 files changed, 222 insertions(+), 364 deletions(-) -- 2.53.0

