A driver .dev_close op is automatically called when releasing a dma device. Move device specific unitialisation in this driver .dev_close op.
This leaves no user of the dmadev field in the fslmc device object. Signed-off-by: David Marchand <[email protected]> --- drivers/bus/fslmc/bus_fslmc_driver.h | 1 - drivers/dma/dpaa2/dpaa2_qdma.c | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h index 45c7a519f9..efa88754a7 100644 --- a/drivers/bus/fslmc/bus_fslmc_driver.h +++ b/drivers/bus/fslmc/bus_fslmc_driver.h @@ -99,7 +99,6 @@ struct rte_dpaa2_device { struct rte_device device; /**< Inherit core device */ union { struct rte_eth_dev *eth_dev; /**< ethernet device */ - struct rte_dma_dev *dmadev; /**< DMA Device */ struct rte_rawdev *rawdev; /**< Raw Device */ }; enum rte_dpaa2_dev_type dev_type; /**< Device Type */ diff --git a/drivers/dma/dpaa2/dpaa2_qdma.c b/drivers/dma/dpaa2/dpaa2_qdma.c index 4be43d6bd9..beca464c72 100644 --- a/drivers/dma/dpaa2/dpaa2_qdma.c +++ b/drivers/dma/dpaa2/dpaa2_qdma.c @@ -1455,6 +1455,9 @@ dpaa2_qdma_stop(struct rte_dma_dev *dev) return 0; } +static int +dpaa2_dpdmai_dev_uninit(struct rte_dma_dev *dev); + static int dpaa2_qdma_close(struct rte_dma_dev *dev) { @@ -1505,6 +1508,8 @@ dpaa2_qdma_close(struct rte_dma_dev *dev) /* Reset QDMA device structure */ qdma_dev->num_vqs = 0; + dpaa2_dpdmai_dev_uninit(dev); + return 0; } @@ -1703,7 +1708,6 @@ dpaa2_qdma_probe(struct rte_dpaa2_driver *dpaa2_drv, return -EINVAL; } - dpaa2_dev->dmadev = dmadev; dmadev->dev_ops = &dpaa2_qdma_ops; dmadev->device = &dpaa2_dev->device; dmadev->fp_obj->dev_private = dmadev->data->dev_private; @@ -1727,13 +1731,10 @@ dpaa2_qdma_probe(struct rte_dpaa2_driver *dpaa2_drv, static int dpaa2_qdma_remove(struct rte_dpaa2_device *dpaa2_dev) { - struct rte_dma_dev *dmadev = dpaa2_dev->dmadev; int ret; DPAA2_QDMA_FUNC_TRACE(); - dpaa2_dpdmai_dev_uninit(dmadev); - ret = rte_dma_pmd_release(dpaa2_dev->device.name); if (ret) DPAA2_QDMA_ERR("Device cleanup failed"); -- 2.51.0

