[PATCH 00/13] Bus cleanup infrastructure and fixes
David Marchand
david.marchand at redhat.com
Thu Jun 11 11:45:37 CEST 2026
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-8) 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)
- Simplified device freeing in NXP buses (DPAA and FSLMC)
- Deferred interrupt allocation to probe time (NXP buses, VMBUS)
The core infrastructure changes (patches 9-10) 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
- Adds compile-time verification that rte_device is at offset 0
The final patches (11-13) convert remaining buses to use the generic
cleanup helper:
- DPAA bus: add unplug support
- VMBUS bus: switch to embedded device name and add unplug support
After this series, most buses use the generic cleanup helper, eliminating
duplicated code and ensuring consistent cleanup behavior across the
codebase.
--
David Marchand
David Marchand (13):
bus: fix reference to plug callback
dma/idxd: remove next pointer in bus specific device
bus/vdev: remove driver setting in probe
drivers/bus: cleanup device freeing in NXP bus
drivers/bus: allocate interrupt during probing in NXP bus
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/dpaa: support unplug
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 | 8 ++
drivers/bus/auxiliary/auxiliary_common.c | 56 +++-----------
drivers/bus/cdx/cdx.c | 31 ++------
drivers/bus/dpaa/dpaa_bus.c | 96 ++++++++++--------------
drivers/bus/fslmc/fslmc_bus.c | 55 ++++++--------
drivers/bus/ifpga/ifpga_bus.c | 65 ++++------------
drivers/bus/pci/pci_common.c | 69 +++--------------
drivers/bus/platform/platform.c | 28 ++-----
drivers/bus/uacce/uacce.c | 61 ++-------------
drivers/bus/vdev/vdev.c | 71 ++++++------------
drivers/bus/vmbus/bus_vmbus_driver.h | 1 +
drivers/bus/vmbus/linux/vmbus_bus.c | 16 +---
drivers/bus/vmbus/vmbus_common.c | 56 ++++++++------
drivers/dma/idxd/idxd_bus.c | 3 +-
lib/eal/common/eal_common_bus.c | 33 +++++++-
lib/eal/common/eal_common_dev.c | 10 ++-
lib/eal/include/bus_driver.h | 42 ++++++++++-
18 files changed, 268 insertions(+), 453 deletions(-)
--
2.53.0
More information about the dev
mailing list