Hello Hemant,
This is a followup to the refactoring started in 26.07.
I took some time with my best AI friend to cleanup DPAA and FSLMC bus
drivers.
Like the last time, only compilation has been checked.
I have no hardware to test runtime.
One thing that could be broken is either the order of devices
initialisation, or bugs in the device filtering that I tried to
simplify.
I went with the approach of splitting the device list between
internal bus object (that I called "control" devices, maybe a better
name can be found), and normal bus device object for which DPDK has a
driver.
I think it is worth testing and fixing, as it will make the two NXP
bus drivers similar to other bus drivers (but keep the special IO devices
handling internal to the FSLMC bus for example).
--
David Marchand
Changes since RFC v1:
- fixed FD leak in bus/dpaa pre existing code,
- fixed device name leak in bus/fslmc pre existing code,
- fixed other leaks found by AI review,
- split DPAA2 devices in two list:
- one list in the bus object for devices for which a driver exists,
- one list local to the fslmc bus code for internal resources that
are initialised out of the EAL / bus framework,
David Marchand (16):
drivers/bus: cleanup device freeing in NXP bus scan
drivers/bus: fix FD leak during scan in NXP drivers
bus/dpaa: allocate interrupt during probing
bus/dpaa: support unplug and use generic cleanup
bus/fslmc: fix device name leak
bus/fslmc: fix memory leaks in scan
bus/fslmc: fix per type device count
bus/fslmc: fix some VFIO device FD and memory leaks
bus/fslmc: fix interrupt leak in DPIO cleanup
bus/fslmc: simplify device parsing in scan
bus/fslmc: release resources on scan failure
bus/fslmc: refactor device filtering for multiprocess
bus/fslmc: move unplug for some device out of VFIO
bus/fslmc: call VFIO setup for some device from bus layer
bus/fslmc: allocate interrupt during probing
bus/fslmc: use generic cleanup
doc/guides/rel_notes/release_26_11.rst | 4 +
drivers/bus/dpaa/dpaa_bus.c | 146 ++++----
drivers/bus/fslmc/bus_fslmc_driver.h | 4 +-
drivers/bus/fslmc/fslmc_bus.c | 431 +++++++++++++++++------
drivers/bus/fslmc/fslmc_vfio.c | 407 ++++++++++-----------
drivers/bus/fslmc/fslmc_vfio.h | 6 +
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 1 +
drivers/bus/fslmc/private.h | 6 +
8 files changed, 601 insertions(+), 404 deletions(-)
--
2.54.0