[RFC 08/11] bus/fslmc: move unplug for some device out of VFIO
David Marchand
david.marchand at redhat.com
Thu Jul 23 15:53:56 CEST 2026
Move device unplug out of the code dealing with VFIO, interrupts and
IO devices.
Signed-off-by: David Marchand <david.marchand at redhat.com>
---
drivers/bus/fslmc/fslmc_bus.c | 15 ++++++++++++++-
drivers/bus/fslmc/fslmc_vfio.c | 10 ----------
2 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index 4b80948aee..a03ef6051a 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -519,10 +519,23 @@ fslmc_bus_match(const struct rte_driver *drv, const struct rte_device *dev)
}
static int
-rte_fslmc_close(struct rte_bus *bus __rte_unused)
+fslmc_bus_unplug_device(struct rte_device *rte_dev);
+
+static int
+rte_fslmc_close(struct rte_bus *bus)
{
+ struct rte_dpaa2_device *dev;
int ret = 0;
+ RTE_BUS_FOREACH_DEV(dev, bus) {
+ if (dev->dev_type != DPAA2_ETH &&
+ dev->dev_type != DPAA2_CRYPTO &&
+ dev->dev_type != DPAA2_QDMA)
+ continue;
+ if (rte_dev_is_probed(&dev->device) && fslmc_bus_unplug_device(&dev->device))
+ DPAA2_BUS_ERR("Unable to remove %s", dev->device.name);
+ }
+
ret = fslmc_vfio_close_group();
if (ret)
DPAA2_BUS_INFO("Unable to close devices %d", ret);
diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index d67232c31b..5720f366db 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -1392,7 +1392,6 @@ fslmc_close_iodevices(struct rte_dpaa2_device *dev,
int vfio_fd)
{
struct rte_dpaa2_object *object = NULL;
- const struct rte_dpaa2_driver *drv;
int ret;
switch (dev->dev_type) {
@@ -1408,15 +1407,6 @@ fslmc_close_iodevices(struct rte_dpaa2_device *dev,
continue;
}
break;
- case DPAA2_ETH:
- case DPAA2_CRYPTO:
- case DPAA2_QDMA:
- if (dev->device.driver != NULL) {
- drv = RTE_BUS_DRIVER(dev->device.driver, *drv);
- if (drv->remove && drv->remove(dev))
- DPAA2_BUS_ERR("Unable to remove");
- }
- break;
default:
break;
}
--
2.54.0
More information about the dev
mailing list