DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 0/5] Cleanup rte_dpaa2_device
@ 2025-11-08 15:32 David Marchand
  2025-11-08 15:32 ` [PATCH 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: David Marchand @ 2025-11-08 15:32 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime

The rte_dpaa2_device object keeps track of a device class object
(cryptodev, dmadev, ethdev, rawdev) which is a layer violation.

Make use of the device class respective infrastructure and remove those
back references.

Disclaimer: this series is untested as I don't have the hardware.
I only based those changes on look at the code and other drivers.


-- 
David Marchand

David Marchand (5):
  crypto/dpaa2_sec: remove crypto device in bus device
  dma/dpaa2: remove DMA device in bus device
  net/dpaa2: remove dead code in loopback mode
  net/dpaa2: remove ethdev device in bus device
  bus/fslmc: remove raw device in bus device

 drivers/bus/fslmc/bus_fslmc_driver.h        |  6 ---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  8 ++--
 drivers/dma/dpaa2/dpaa2_qdma.c              |  9 ++--
 drivers/net/dpaa2/dpaa2_ethdev.c            |  6 ++-
 drivers/net/dpaa2/dpaa2_ethdev.h            |  6 ---
 drivers/net/dpaa2/dpaa2_recycle.c           | 50 ---------------------
 6 files changed, 14 insertions(+), 71 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/5] crypto/dpaa2_sec: remove crypto device in bus device
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
@ 2025-11-08 15:32 ` David Marchand
  2025-11-08 15:32 ` [PATCH 2/5] dma/dpaa2: remove DMA " David Marchand
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-08 15:32 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena, Gagandeep Singh

Calling rte_cryptodev_pmd_get_named_dev() is enough to retrieve the
crypto device object.

This leaves no user of the cryptodev field in the fslmc device object.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/fslmc/bus_fslmc_driver.h        | 1 -
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
index b6a6238a01..45c7a519f9 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_cryptodev *cryptodev;    /**< Crypto Device */
 		struct rte_dma_dev *dmadev;          /**< DMA Device */
 		struct rte_rawdev *rawdev;          /**< Raw Device */
 	};
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index ca10d88da7..698548e6ea 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -4503,8 +4503,6 @@ cryptodev_dpaa2_sec_probe(struct rte_dpaa2_driver *dpaa2_drv __rte_unused,
 		return -ENOMEM;
 	}
 
-	dpaa2_dev->cryptodev = cryptodev;
-
 	if (dpaa2_svr_family == SVR_LX2160A)
 		rta_set_sec_era(RTA_SEC_ERA_10);
 	else
@@ -4526,10 +4524,14 @@ cryptodev_dpaa2_sec_probe(struct rte_dpaa2_driver *dpaa2_drv __rte_unused,
 static int
 cryptodev_dpaa2_sec_remove(struct rte_dpaa2_device *dpaa2_dev)
 {
+	char cryptodev_name[RTE_CRYPTODEV_NAME_MAX_LEN];
 	struct rte_cryptodev *cryptodev;
 	int ret;
 
-	cryptodev = dpaa2_dev->cryptodev;
+	snprintf(cryptodev_name, sizeof(cryptodev_name), "dpsec-%d",
+			dpaa2_dev->object_id);
+
+	cryptodev = rte_cryptodev_pmd_get_named_dev(cryptodev_name);
 	if (cryptodev == NULL)
 		return -ENODEV;
 
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 2/5] dma/dpaa2: remove DMA device in bus device
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
  2025-11-08 15:32 ` [PATCH 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
@ 2025-11-08 15:32 ` David Marchand
  2025-11-08 15:32 ` [PATCH 3/5] net/dpaa2: remove dead code in loopback mode David Marchand
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-08 15:32 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena, Gagandeep Singh

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 <david.marchand@redhat.com>
---
 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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 3/5] net/dpaa2: remove dead code in loopback mode
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
  2025-11-08 15:32 ` [PATCH 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
  2025-11-08 15:32 ` [PATCH 2/5] dma/dpaa2: remove DMA " David Marchand
@ 2025-11-08 15:32 ` David Marchand
  2025-11-08 15:32 ` [PATCH 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-08 15:32 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena, Jun Yang

This code was never used.

Fixes: f023d059769f ("net/dpaa2: support recycle loopback port")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.h  |  6 ----
 drivers/net/dpaa2/dpaa2_recycle.c | 50 -------------------------------
 2 files changed, 56 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 87a94bc15b..86b3022ddb 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -531,12 +531,6 @@ int dpaa2_dev_recycle_config(struct rte_eth_dev *eth_dev);
 int dpaa2_dev_recycle_deconfig(struct rte_eth_dev *eth_dev);
 int dpaa2_soft_parser_loaded(void);
 
-int dpaa2_dev_recycle_qp_setup(struct rte_dpaa2_device *dpaa2_dev,
-	uint16_t qidx, uint64_t cntx,
-	eth_rx_burst_t tx_lpbk, eth_tx_burst_t rx_lpbk,
-	struct dpaa2_queue **txq,
-	struct dpaa2_queue **rxq);
-
 void
 dpaa2_dev_mac_setup_stats(struct rte_eth_dev *dev);
 
diff --git a/drivers/net/dpaa2/dpaa2_recycle.c b/drivers/net/dpaa2/dpaa2_recycle.c
index 94a7e2a020..d1e21dd4d1 100644
--- a/drivers/net/dpaa2/dpaa2_recycle.c
+++ b/drivers/net/dpaa2/dpaa2_recycle.c
@@ -730,53 +730,3 @@ dpaa2_dev_recycle_deconfig(struct rte_eth_dev *eth_dev)
 
 	return ret;
 }
-
-int
-dpaa2_dev_recycle_qp_setup(struct rte_dpaa2_device *dpaa2_dev,
-	uint16_t qidx, uint64_t cntx,
-	eth_rx_burst_t tx_lpbk, eth_tx_burst_t rx_lpbk,
-	struct dpaa2_queue **txq,
-	struct dpaa2_queue **rxq)
-{
-	struct rte_eth_dev *dev;
-	struct rte_eth_dev_data *data;
-	struct dpaa2_queue *txq_tmp;
-	struct dpaa2_queue *rxq_tmp;
-	struct dpaa2_dev_priv *priv;
-
-	dev = dpaa2_dev->eth_dev;
-	data = dev->data;
-	priv = data->dev_private;
-
-	if (!(priv->flags & DPAA2_TX_LOOPBACK_MODE) &&
-		(tx_lpbk || rx_lpbk)) {
-		DPAA2_PMD_ERR("%s is NOT recycle device!", data->name);
-
-		return -EINVAL;
-	}
-
-	if (qidx >= data->nb_rx_queues || qidx >= data->nb_tx_queues)
-		return -EINVAL;
-
-	rte_spinlock_lock(&priv->lpbk_qp_lock);
-
-	if (tx_lpbk)
-		dev->tx_pkt_burst = tx_lpbk;
-
-	if (rx_lpbk)
-		dev->rx_pkt_burst = rx_lpbk;
-
-	txq_tmp = data->tx_queues[qidx];
-	txq_tmp->lpbk_cntx = cntx;
-	rxq_tmp = data->rx_queues[qidx];
-	rxq_tmp->lpbk_cntx = cntx;
-
-	if (txq)
-		*txq = txq_tmp;
-	if (rxq)
-		*rxq = rxq_tmp;
-
-	rte_spinlock_unlock(&priv->lpbk_qp_lock);
-
-	return 0;
-}
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 4/5] net/dpaa2: remove ethdev device in bus device
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
                   ` (2 preceding siblings ...)
  2025-11-08 15:32 ` [PATCH 3/5] net/dpaa2: remove dead code in loopback mode David Marchand
@ 2025-11-08 15:32 ` David Marchand
  2025-11-12  8:44   ` Maxime Leroy
  2025-11-08 15:32 ` [PATCH 5/5] bus/fslmc: remove raw " David Marchand
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: David Marchand @ 2025-11-08 15:32 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena

Calling rte_eth_dev_allocated() is enough to retrieve the
ethdev device object.

This leaves no user of the ethdev field in the fslmc device object.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/fslmc/bus_fslmc_driver.h | 1 -
 drivers/net/dpaa2/dpaa2_ethdev.c     | 6 ++++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
index efa88754a7..094f885f59 100644
--- a/drivers/bus/fslmc/bus_fslmc_driver.h
+++ b/drivers/bus/fslmc/bus_fslmc_driver.h
@@ -98,7 +98,6 @@ struct rte_dpaa2_device {
 	TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */
 	struct rte_device device;           /**< Inherit core device */
 	union {
-		struct rte_eth_dev *eth_dev;        /**< ethernet device */
 		struct rte_rawdev *rawdev;          /**< Raw Device */
 	};
 	enum rte_dpaa2_dev_type dev_type;   /**< Device Type */
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 7da32ce856..2a26a02cb4 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -3320,7 +3320,6 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
 
 	eth_dev->device = &dpaa2_dev->device;
 
-	dpaa2_dev->eth_dev = eth_dev;
 	eth_dev->data->rx_mbuf_alloc_failed = 0;
 
 	if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
@@ -3349,7 +3348,10 @@ rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev)
 	struct rte_eth_dev *eth_dev;
 	int ret;
 
-	eth_dev = dpaa2_dev->eth_dev;
+	eth_dev = rte_eth_dev_allocated(dpaa2_dev->device.name);
+	if (!eth_dev)
+		return 0;
+
 	dpaa2_dev_close(eth_dev);
 	dpaa2_valid_dev--;
 	if (!dpaa2_valid_dev)
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 5/5] bus/fslmc: remove raw device in bus device
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
                   ` (3 preceding siblings ...)
  2025-11-08 15:32 ` [PATCH 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
@ 2025-11-08 15:32 ` David Marchand
  2025-11-12  7:35 ` [PATCH 0/5] Cleanup rte_dpaa2_device Hemant Agrawal
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
  6 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-08 15:32 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena

There is no user of this field.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/fslmc/bus_fslmc_driver.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
index 094f885f59..89abc3c486 100644
--- a/drivers/bus/fslmc/bus_fslmc_driver.h
+++ b/drivers/bus/fslmc/bus_fslmc_driver.h
@@ -97,9 +97,6 @@ enum rte_dpaa2_dev_type {
 struct rte_dpaa2_device {
 	TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */
 	struct rte_device device;           /**< Inherit core device */
-	union {
-		struct rte_rawdev *rawdev;          /**< Raw Device */
-	};
 	enum rte_dpaa2_dev_type dev_type;   /**< Device Type */
 	uint16_t object_id;                 /**< DPAA2 Object ID */
 	enum rte_dpaa2_dev_type ep_dev_type;   /**< Endpoint Device Type */
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* RE: [PATCH 0/5] Cleanup rte_dpaa2_device
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
                   ` (4 preceding siblings ...)
  2025-11-08 15:32 ` [PATCH 5/5] bus/fslmc: remove raw " David Marchand
@ 2025-11-12  7:35 ` Hemant Agrawal
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
  6 siblings, 0 replies; 16+ messages in thread
From: Hemant Agrawal @ 2025-11-12  7:35 UTC (permalink / raw)
  To: David Marchand, dev; +Cc: maxime



> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: 08 November 2025 21:02
> To: dev@dpdk.org
> Cc: Hemant Agrawal <hemant.agrawal@nxp.com>; maxime@leroys.fr
> Subject: [PATCH 0/5] Cleanup rte_dpaa2_device
> Importance: High
> 
> The rte_dpaa2_device object keeps track of a device class object (cryptodev,
> dmadev, ethdev, rawdev) which is a layer violation.
> 
> Make use of the device class respective infrastructure and remove those back
> references.
> 
> Disclaimer: this series is untested as I don't have the hardware.
> I only based those changes on look at the code and other drivers.
> 
Thanks for the patchset, we will revert with the test results shortly.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 4/5] net/dpaa2: remove ethdev device in bus device
  2025-11-08 15:32 ` [PATCH 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
@ 2025-11-12  8:44   ` Maxime Leroy
  2025-11-12  8:56     ` David Marchand
  0 siblings, 1 reply; 16+ messages in thread
From: Maxime Leroy @ 2025-11-12  8:44 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, hemant.agrawal, Sachin Saxena

Hi David,

Le sam. 8 nov. 2025 à 16:32, David Marchand
<david.marchand@redhat.com> a écrit :
>
> Calling rte_eth_dev_allocated() is enough to retrieve the
> ethdev device object.
>
> This leaves no user of the ethdev field in the fslmc device object.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  drivers/bus/fslmc/bus_fslmc_driver.h | 1 -
>  drivers/net/dpaa2/dpaa2_ethdev.c     | 6 ++++--
>  2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
> index efa88754a7..094f885f59 100644
> --- a/drivers/bus/fslmc/bus_fslmc_driver.h
> +++ b/drivers/bus/fslmc/bus_fslmc_driver.h
> @@ -98,7 +98,6 @@ struct rte_dpaa2_device {
>         TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */
>         struct rte_device device;           /**< Inherit core device */
>         union {
> -               struct rte_eth_dev *eth_dev;        /**< ethernet device */
>                 struct rte_rawdev *rawdev;          /**< Raw Device */
>         };
>         enum rte_dpaa2_dev_type dev_type;   /**< Device Type */
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
> index 7da32ce856..2a26a02cb4 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> @@ -3320,7 +3320,6 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
>
>         eth_dev->device = &dpaa2_dev->device;
>
> -       dpaa2_dev->eth_dev = eth_dev;
>         eth_dev->data->rx_mbuf_alloc_failed = 0;
>
>         if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
> @@ -3349,7 +3348,10 @@ rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev)
>         struct rte_eth_dev *eth_dev;
>         int ret;
>
> -       eth_dev = dpaa2_dev->eth_dev;
> +       eth_dev = rte_eth_dev_allocated(dpaa2_dev->device.name);
> +       if (!eth_dev)
> +               return 0;
> +
>         dpaa2_dev_close(eth_dev);
>         dpaa2_valid_dev--;
>         if (!dpaa2_valid_dev)


dpaa2_valid_dev is currently incremented in rte_dpaa2_probe. With your
modification, dpaa2_valid_dev will never be decremented in
rte_dpaa2_remove if rte_eth_dev_close has already been called.
As a consequence, dpaa2_tx_sg_pool will never be freed.

I don’t think dpaa2_tx_sg_pool should be freed in rte_dpaa2_remove; it
should be freed in dpaa2_dev_close instead.
For symmetry, dpaa2_tx_sg_pool should also be allocated directly in
dpaa2_dev_init.

Regards,

Maxime Leroy

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 4/5] net/dpaa2: remove ethdev device in bus device
  2025-11-12  8:44   ` Maxime Leroy
@ 2025-11-12  8:56     ` David Marchand
  2025-11-12  9:04       ` David Marchand
  0 siblings, 1 reply; 16+ messages in thread
From: David Marchand @ 2025-11-12  8:56 UTC (permalink / raw)
  To: Maxime Leroy, hemant.agrawal; +Cc: dev, Sachin Saxena

Hi Maxime and Hemant,

On Wed, 12 Nov 2025 at 09:44, Maxime Leroy <maxime@leroys.fr> wrote:
> Le sam. 8 nov. 2025 à 16:32, David Marchand
> <david.marchand@redhat.com> a écrit :
> >
> > Calling rte_eth_dev_allocated() is enough to retrieve the
> > ethdev device object.
> >
> > This leaves no user of the ethdev field in the fslmc device object.
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> >  drivers/bus/fslmc/bus_fslmc_driver.h | 1 -
> >  drivers/net/dpaa2/dpaa2_ethdev.c     | 6 ++++--
> >  2 files changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
> > index efa88754a7..094f885f59 100644
> > --- a/drivers/bus/fslmc/bus_fslmc_driver.h
> > +++ b/drivers/bus/fslmc/bus_fslmc_driver.h
> > @@ -98,7 +98,6 @@ struct rte_dpaa2_device {
> >         TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */
> >         struct rte_device device;           /**< Inherit core device */
> >         union {
> > -               struct rte_eth_dev *eth_dev;        /**< ethernet device */
> >                 struct rte_rawdev *rawdev;          /**< Raw Device */
> >         };
> >         enum rte_dpaa2_dev_type dev_type;   /**< Device Type */
> > diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
> > index 7da32ce856..2a26a02cb4 100644
> > --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> > +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> > @@ -3320,7 +3320,6 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
> >
> >         eth_dev->device = &dpaa2_dev->device;
> >
> > -       dpaa2_dev->eth_dev = eth_dev;
> >         eth_dev->data->rx_mbuf_alloc_failed = 0;
> >
> >         if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
> > @@ -3349,7 +3348,10 @@ rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev)
> >         struct rte_eth_dev *eth_dev;
> >         int ret;
> >
> > -       eth_dev = dpaa2_dev->eth_dev;
> > +       eth_dev = rte_eth_dev_allocated(dpaa2_dev->device.name);
> > +       if (!eth_dev)
> > +               return 0;
> > +
> >         dpaa2_dev_close(eth_dev);
> >         dpaa2_valid_dev--;
> >         if (!dpaa2_valid_dev)
>
>
> dpaa2_valid_dev is currently incremented in rte_dpaa2_probe. With your
> modification, dpaa2_valid_dev will never be decremented in
> rte_dpaa2_remove if rte_eth_dev_close has already been called.
> As a consequence, dpaa2_tx_sg_pool will never be freed.
>
> I don’t think dpaa2_tx_sg_pool should be freed in rte_dpaa2_remove; it
> should be freed in dpaa2_dev_close instead.
> For symmetry, dpaa2_tx_sg_pool should also be allocated directly in
> dpaa2_dev_init.

Indeed, moving the dpaa2_tx_sg_pool handling in dev_init/dev_close is
more self contained, and looks cleaner.

Now, taking a step back, I should not try and fix the bug you guys
have been working on.
IOW, the check on !eth_dev in this patch of mine is unrelated to the series.

I'll respin a v2 shortly, that focuses on the layer violation only.
For you guys to fix the double close bug.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 4/5] net/dpaa2: remove ethdev device in bus device
  2025-11-12  8:56     ` David Marchand
@ 2025-11-12  9:04       ` David Marchand
  0 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:04 UTC (permalink / raw)
  To: Maxime Leroy, hemant.agrawal; +Cc: dev, Sachin Saxena

On Wed, 12 Nov 2025 at 09:56, David Marchand <david.marchand@redhat.com> wrote:
> On Wed, 12 Nov 2025 at 09:44, Maxime Leroy <maxime@leroys.fr> wrote:
> > I don’t think dpaa2_tx_sg_pool should be freed in rte_dpaa2_remove; it
> > should be freed in dpaa2_dev_close instead.
> > For symmetry, dpaa2_tx_sg_pool should also be allocated directly in
> > dpaa2_dev_init.
>
> Indeed, moving the dpaa2_tx_sg_pool handling in dev_init/dev_close is
> more self contained, and looks cleaner.

On this topic, in rte_dpaa2_probe:

    /* Invoke PMD device initialization function */
    diag = dpaa2_dev_init(eth_dev);
    if (!diag) {
        diag = dpaa2_tx_sg_pool_init();
        if (diag)
            return diag;

On dpaa2_tx_sg_pool_init() failure, a eth_dev is leaked.
Worth fixing while moving around the code related to dpaa2_tx_sg_pool.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 0/5] Cleanup rte_dpaa2_device
  2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
                   ` (5 preceding siblings ...)
  2025-11-12  7:35 ` [PATCH 0/5] Cleanup rte_dpaa2_device Hemant Agrawal
@ 2025-11-12  9:10 ` David Marchand
  2025-11-12  9:10   ` [PATCH v2 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
                     ` (4 more replies)
  6 siblings, 5 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:10 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime

The rte_dpaa2_device object keeps track of a device class object
(cryptodev, dmadev, ethdev, rawdev) which is a layer violation.

Make use of the device class respective infrastructure and remove those
back references.

Disclaimer: this series is untested as I don't have the hardware.
I only based those changes on look at the code and other drivers.


-- 
David Marchand

Changes since v1:
- removed (wrong) attempt at fixing a double close bug in patch 4,


David Marchand (5):
  crypto/dpaa2_sec: remove crypto device in bus device
  dma/dpaa2: remove DMA device in bus device
  net/dpaa2: remove dead code in loopback mode
  net/dpaa2: remove ethdev device in bus device
  bus/fslmc: remove raw device in bus device

 drivers/bus/fslmc/bus_fslmc_driver.h        |  6 ---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  8 ++--
 drivers/dma/dpaa2/dpaa2_qdma.c              |  9 ++--
 drivers/net/dpaa2/dpaa2_ethdev.c            |  3 +-
 drivers/net/dpaa2/dpaa2_ethdev.h            |  6 ---
 drivers/net/dpaa2/dpaa2_recycle.c           | 50 ---------------------
 6 files changed, 11 insertions(+), 71 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 1/5] crypto/dpaa2_sec: remove crypto device in bus device
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
@ 2025-11-12  9:10   ` David Marchand
  2025-11-12  9:10   ` [PATCH v2 2/5] dma/dpaa2: remove DMA " David Marchand
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:10 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena, Gagandeep Singh

Calling rte_cryptodev_pmd_get_named_dev() is enough to retrieve the
crypto device object.

This leaves no user of the cryptodev field in the fslmc device object.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/fslmc/bus_fslmc_driver.h        | 1 -
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
index b6a6238a01..45c7a519f9 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_cryptodev *cryptodev;    /**< Crypto Device */
 		struct rte_dma_dev *dmadev;          /**< DMA Device */
 		struct rte_rawdev *rawdev;          /**< Raw Device */
 	};
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index ca10d88da7..698548e6ea 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -4503,8 +4503,6 @@ cryptodev_dpaa2_sec_probe(struct rte_dpaa2_driver *dpaa2_drv __rte_unused,
 		return -ENOMEM;
 	}
 
-	dpaa2_dev->cryptodev = cryptodev;
-
 	if (dpaa2_svr_family == SVR_LX2160A)
 		rta_set_sec_era(RTA_SEC_ERA_10);
 	else
@@ -4526,10 +4524,14 @@ cryptodev_dpaa2_sec_probe(struct rte_dpaa2_driver *dpaa2_drv __rte_unused,
 static int
 cryptodev_dpaa2_sec_remove(struct rte_dpaa2_device *dpaa2_dev)
 {
+	char cryptodev_name[RTE_CRYPTODEV_NAME_MAX_LEN];
 	struct rte_cryptodev *cryptodev;
 	int ret;
 
-	cryptodev = dpaa2_dev->cryptodev;
+	snprintf(cryptodev_name, sizeof(cryptodev_name), "dpsec-%d",
+			dpaa2_dev->object_id);
+
+	cryptodev = rte_cryptodev_pmd_get_named_dev(cryptodev_name);
 	if (cryptodev == NULL)
 		return -ENODEV;
 
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 2/5] dma/dpaa2: remove DMA device in bus device
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
  2025-11-12  9:10   ` [PATCH v2 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
@ 2025-11-12  9:10   ` David Marchand
  2025-11-12  9:10   ` [PATCH v2 3/5] net/dpaa2: remove dead code in loopback mode David Marchand
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:10 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena, Gagandeep Singh

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 <david.marchand@redhat.com>
---
 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


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 3/5] net/dpaa2: remove dead code in loopback mode
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
  2025-11-12  9:10   ` [PATCH v2 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
  2025-11-12  9:10   ` [PATCH v2 2/5] dma/dpaa2: remove DMA " David Marchand
@ 2025-11-12  9:10   ` David Marchand
  2025-11-12  9:10   ` [PATCH v2 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
  2025-11-12  9:10   ` [PATCH v2 5/5] bus/fslmc: remove raw " David Marchand
  4 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:10 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena, Jun Yang

This code was never used.

Fixes: f023d059769f ("net/dpaa2: support recycle loopback port")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.h  |  6 ----
 drivers/net/dpaa2/dpaa2_recycle.c | 50 -------------------------------
 2 files changed, 56 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 87a94bc15b..86b3022ddb 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -531,12 +531,6 @@ int dpaa2_dev_recycle_config(struct rte_eth_dev *eth_dev);
 int dpaa2_dev_recycle_deconfig(struct rte_eth_dev *eth_dev);
 int dpaa2_soft_parser_loaded(void);
 
-int dpaa2_dev_recycle_qp_setup(struct rte_dpaa2_device *dpaa2_dev,
-	uint16_t qidx, uint64_t cntx,
-	eth_rx_burst_t tx_lpbk, eth_tx_burst_t rx_lpbk,
-	struct dpaa2_queue **txq,
-	struct dpaa2_queue **rxq);
-
 void
 dpaa2_dev_mac_setup_stats(struct rte_eth_dev *dev);
 
diff --git a/drivers/net/dpaa2/dpaa2_recycle.c b/drivers/net/dpaa2/dpaa2_recycle.c
index 94a7e2a020..d1e21dd4d1 100644
--- a/drivers/net/dpaa2/dpaa2_recycle.c
+++ b/drivers/net/dpaa2/dpaa2_recycle.c
@@ -730,53 +730,3 @@ dpaa2_dev_recycle_deconfig(struct rte_eth_dev *eth_dev)
 
 	return ret;
 }
-
-int
-dpaa2_dev_recycle_qp_setup(struct rte_dpaa2_device *dpaa2_dev,
-	uint16_t qidx, uint64_t cntx,
-	eth_rx_burst_t tx_lpbk, eth_tx_burst_t rx_lpbk,
-	struct dpaa2_queue **txq,
-	struct dpaa2_queue **rxq)
-{
-	struct rte_eth_dev *dev;
-	struct rte_eth_dev_data *data;
-	struct dpaa2_queue *txq_tmp;
-	struct dpaa2_queue *rxq_tmp;
-	struct dpaa2_dev_priv *priv;
-
-	dev = dpaa2_dev->eth_dev;
-	data = dev->data;
-	priv = data->dev_private;
-
-	if (!(priv->flags & DPAA2_TX_LOOPBACK_MODE) &&
-		(tx_lpbk || rx_lpbk)) {
-		DPAA2_PMD_ERR("%s is NOT recycle device!", data->name);
-
-		return -EINVAL;
-	}
-
-	if (qidx >= data->nb_rx_queues || qidx >= data->nb_tx_queues)
-		return -EINVAL;
-
-	rte_spinlock_lock(&priv->lpbk_qp_lock);
-
-	if (tx_lpbk)
-		dev->tx_pkt_burst = tx_lpbk;
-
-	if (rx_lpbk)
-		dev->rx_pkt_burst = rx_lpbk;
-
-	txq_tmp = data->tx_queues[qidx];
-	txq_tmp->lpbk_cntx = cntx;
-	rxq_tmp = data->rx_queues[qidx];
-	rxq_tmp->lpbk_cntx = cntx;
-
-	if (txq)
-		*txq = txq_tmp;
-	if (rxq)
-		*rxq = rxq_tmp;
-
-	rte_spinlock_unlock(&priv->lpbk_qp_lock);
-
-	return 0;
-}
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 4/5] net/dpaa2: remove ethdev device in bus device
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
                     ` (2 preceding siblings ...)
  2025-11-12  9:10   ` [PATCH v2 3/5] net/dpaa2: remove dead code in loopback mode David Marchand
@ 2025-11-12  9:10   ` David Marchand
  2025-11-12  9:10   ` [PATCH v2 5/5] bus/fslmc: remove raw " David Marchand
  4 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:10 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena

Calling rte_eth_dev_allocated() is enough to retrieve the
ethdev device object.

This leaves no user of the ethdev field in the fslmc device object.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v1:
- dropped return on !eth_dev (this should be fixed in a separate patch),

---
 drivers/bus/fslmc/bus_fslmc_driver.h | 1 -
 drivers/net/dpaa2/dpaa2_ethdev.c     | 3 +--
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
index efa88754a7..094f885f59 100644
--- a/drivers/bus/fslmc/bus_fslmc_driver.h
+++ b/drivers/bus/fslmc/bus_fslmc_driver.h
@@ -98,7 +98,6 @@ struct rte_dpaa2_device {
 	TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */
 	struct rte_device device;           /**< Inherit core device */
 	union {
-		struct rte_eth_dev *eth_dev;        /**< ethernet device */
 		struct rte_rawdev *rawdev;          /**< Raw Device */
 	};
 	enum rte_dpaa2_dev_type dev_type;   /**< Device Type */
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 7da32ce856..c545177999 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -3320,7 +3320,6 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
 
 	eth_dev->device = &dpaa2_dev->device;
 
-	dpaa2_dev->eth_dev = eth_dev;
 	eth_dev->data->rx_mbuf_alloc_failed = 0;
 
 	if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
@@ -3349,7 +3348,7 @@ rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev)
 	struct rte_eth_dev *eth_dev;
 	int ret;
 
-	eth_dev = dpaa2_dev->eth_dev;
+	eth_dev = rte_eth_dev_allocated(dpaa2_dev->device.name);
 	dpaa2_dev_close(eth_dev);
 	dpaa2_valid_dev--;
 	if (!dpaa2_valid_dev)
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 5/5] bus/fslmc: remove raw device in bus device
  2025-11-12  9:10 ` [PATCH v2 " David Marchand
                     ` (3 preceding siblings ...)
  2025-11-12  9:10   ` [PATCH v2 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
@ 2025-11-12  9:10   ` David Marchand
  4 siblings, 0 replies; 16+ messages in thread
From: David Marchand @ 2025-11-12  9:10 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, maxime, Sachin Saxena

There is no user of this field.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/bus/fslmc/bus_fslmc_driver.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/bus/fslmc/bus_fslmc_driver.h b/drivers/bus/fslmc/bus_fslmc_driver.h
index 094f885f59..89abc3c486 100644
--- a/drivers/bus/fslmc/bus_fslmc_driver.h
+++ b/drivers/bus/fslmc/bus_fslmc_driver.h
@@ -97,9 +97,6 @@ enum rte_dpaa2_dev_type {
 struct rte_dpaa2_device {
 	TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */
 	struct rte_device device;           /**< Inherit core device */
-	union {
-		struct rte_rawdev *rawdev;          /**< Raw Device */
-	};
 	enum rte_dpaa2_dev_type dev_type;   /**< Device Type */
 	uint16_t object_id;                 /**< DPAA2 Object ID */
 	enum rte_dpaa2_dev_type ep_dev_type;   /**< Endpoint Device Type */
-- 
2.51.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-11-12  9:11 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-08 15:32 [PATCH 0/5] Cleanup rte_dpaa2_device David Marchand
2025-11-08 15:32 ` [PATCH 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
2025-11-08 15:32 ` [PATCH 2/5] dma/dpaa2: remove DMA " David Marchand
2025-11-08 15:32 ` [PATCH 3/5] net/dpaa2: remove dead code in loopback mode David Marchand
2025-11-08 15:32 ` [PATCH 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
2025-11-12  8:44   ` Maxime Leroy
2025-11-12  8:56     ` David Marchand
2025-11-12  9:04       ` David Marchand
2025-11-08 15:32 ` [PATCH 5/5] bus/fslmc: remove raw " David Marchand
2025-11-12  7:35 ` [PATCH 0/5] Cleanup rte_dpaa2_device Hemant Agrawal
2025-11-12  9:10 ` [PATCH v2 " David Marchand
2025-11-12  9:10   ` [PATCH v2 1/5] crypto/dpaa2_sec: remove crypto device in bus device David Marchand
2025-11-12  9:10   ` [PATCH v2 2/5] dma/dpaa2: remove DMA " David Marchand
2025-11-12  9:10   ` [PATCH v2 3/5] net/dpaa2: remove dead code in loopback mode David Marchand
2025-11-12  9:10   ` [PATCH v2 4/5] net/dpaa2: remove ethdev device in bus device David Marchand
2025-11-12  9:10   ` [PATCH v2 5/5] bus/fslmc: remove raw " David Marchand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).