[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