path: root/drivers/bus
diff options
authorShreyansh Jain <>2019-01-11 12:25:05 +0000
committerFerruh Yigit <>2019-01-14 17:44:29 +0100
commit85ee5dda6b6d39597411f36f59ab006c226345e6 (patch)
tree4c3ff415e6788ad86b741cca99a88c4dd3317378 /drivers/bus
parent109df4601cbe71959bd030c342dcaaf026e6e82d (diff)
net/dpaa2: change reference to private device
The I/O threads for DPAA2 take their reference for bpool ID, the port ID and other info like qdid, from the rte_eth_dev. Further, to get this data during I/O operation, a reference of the RTE device is kept in the queue structure (dpaa2_queue). In case of secondary processes, rte_eth_dev is not same as the primary process. Thus, the reference goes invalid. This patch changes the implementation to use the dev_private rather than the rte_eth_dev as that is shared area across all the processes. Signed-off-by: Shreyansh Jain <>
Diffstat (limited to 'drivers/bus')
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 20c606d..626fcbb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -127,7 +127,10 @@ typedef void (dpaa2_queue_cb_dqrr_t)(struct qbman_swp *swp,
struct dpaa2_queue {
struct rte_mempool *mb_pool; /**< mbuf pool to populate RX ring. */
- void *dev;
+ union {
+ struct rte_eth_dev_data *eth_data;
+ void *dev;
+ };
int32_t eventfd; /*!< Event Fd of this queue */
uint32_t fqid; /*!< Unique ID of this queue */
uint8_t tc_index; /*!< traffic class identifier */