[dpdk-dev] [PATCH] net/mlx5: replace a port lookup with ethdev API

Thomas Monjalon thomas at monjalon.net
Thu Apr 18 02:15:29 CEST 2019


Looking for an ethdev port is better (and more efficient)
with an ethdev API than an EAL one.

Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
---
 drivers/net/mlx5/mlx5_mr.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_mr.c b/drivers/net/mlx5/mlx5_mr.c
index 44b65916d..8f35cb2d8 100644
--- a/drivers/net/mlx5/mlx5_mr.c
+++ b/drivers/net/mlx5/mlx5_mr.c
@@ -1310,16 +1310,10 @@ mlx5_mr_update_ext_mp_cb(struct rte_mempool *mp, void *opaque,
 static struct rte_eth_dev *
 pci_dev_to_eth_dev(struct rte_pci_device *pdev)
 {
-	struct rte_dev_iterator it;
-	struct rte_device *dev;
+	uint16_t port_id;
 
-	/**
-	 *  We really need to iterate all devices regardless of
-	 *  their owner.
-	 */
-	RTE_DEV_FOREACH(dev, "class=eth", &it)
-		if (dev == &pdev->device)
-			return it.class_device;
+	RTE_ETH_FOREACH_DEV_OF(port_id, &pdev->device)
+		return &rte_eth_devices[port_id];
 	return NULL;
 }
 
-- 
2.21.0



More information about the dev mailing list