<div dir="ltr">Ferruh, <div><br></div><div>Since in the older patch we had introduced rte_eth_dev_get_by_name patch and had been merged to dpdk-next-net, the current patch failed for the build when I submitted the patch. Is there a way to enforce it to dpdk-next-net ? <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 3, 2022 at 1:54 PM Kumara Parameshwaran <<a href="mailto:kumaraparamesh92@gmail.com" target="_blank">kumaraparamesh92@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Kumara Parameshwaran <<a href="mailto:kparameshwar@vmware.com" target="_blank">kparameshwar@vmware.com</a>><br>
<br>
Make changes in PMDs to use the new function where<br>
rte_eth_dev_get_port_by_name is used to get port_id<br>
to access rte_eth_devices<br>
<br>
Signed-off-by: Kumara Parameshwaran <<a href="mailto:kparameshwar@vmware.com" target="_blank">kparameshwar@vmware.com</a>><br>
---<br>
v1<br>
* Replace rte_eth_get_get_port_by_name in PMDs with rte_eth_dev_get_by_name<br>
where port_id is used to retrieve rte_eth_dev data structure<br>
<br>
drivers/net/bonding/rte_eth_bond_api.c | 10 +++++-----<br>
drivers/net/ipn3ke/ipn3ke_ethdev.c | 9 +++------<br>
drivers/net/memif/rte_eth_memif.c | 7 ++-----<br>
drivers/net/softnic/rte_eth_softnic_thread.c | 8 +++-----<br>
drivers/net/tap/rte_eth_tap.c | 7 ++-----<br>
5 files changed, 15 insertions(+), 26 deletions(-)<br>
<br>
diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c<br>
index 8840d9e17b..b78867b125 100644<br>
--- a/drivers/net/bonding/rte_eth_bond_api.c<br>
+++ b/drivers/net/bonding/rte_eth_bond_api.c<br>
@@ -151,8 +151,8 @@ int<br>
rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)<br>
{<br>
struct bond_dev_private *internals;<br>
+ struct rte_eth_dev *bond_dev;<br>
char devargs[52];<br>
- uint16_t port_id;<br>
int ret;<br>
<br>
if (name == NULL) {<br>
@@ -169,8 +169,8 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)<br>
if (ret)<br>
return ret;<br>
<br>
- ret = rte_eth_dev_get_port_by_name(name, &port_id);<br>
- RTE_ASSERT(!ret);<br>
+ bond_dev = rte_eth_dev_get_by_name(name);<br>
+ RTE_ASSERT(bond_dev);<br>
<br>
/*<br>
* To make bond_ethdev_configure() happy we need to free the<br>
@@ -178,11 +178,11 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id)<br>
*<br>
* Also see comment in bond_ethdev_configure().<br>
*/<br>
- internals = rte_eth_devices[port_id].data->dev_private;<br>
+ internals = bond_dev->data->dev_private;<br>
rte_kvargs_free(internals->kvlist);<br>
internals->kvlist = NULL;<br>
<br>
- return port_id;<br>
+ return bond_dev->data->port_id;<br>
}<br>
<br>
int<br>
diff --git a/drivers/net/ipn3ke/ipn3ke_ethdev.c b/drivers/net/ipn3ke/ipn3ke_ethdev.c<br>
index 014e438dd5..550a8b0466 100644<br>
--- a/drivers/net/ipn3ke/ipn3ke_ethdev.c<br>
+++ b/drivers/net/ipn3ke/ipn3ke_ethdev.c<br>
@@ -469,7 +469,6 @@ static int ipn3ke_vswitch_probe(struct rte_afu_device *afu_dev)<br>
struct ipn3ke_hw *hw;<br>
struct rte_eth_dev *i40e_eth;<br>
struct ifpga_rawdev *ifpga_dev;<br>
- uint16_t port_id;<br>
int i, j, retval;<br>
char *fvl_bdf;<br>
<br>
@@ -519,14 +518,12 @@ static int ipn3ke_vswitch_probe(struct rte_afu_device *afu_dev)<br>
<br>
for (; j < 8; j++) {<br>
fvl_bdf = ifpga_dev->fvl_bdf[j];<br>
- retval = rte_eth_dev_get_port_by_name(fvl_bdf,<br>
- &port_id);<br>
- if (retval) {<br>
+ i40e_eth = rte_eth_dev_get_by_name(fvl_bdf);<br>
+ if (!i40e_eth) {<br>
continue;<br>
} else {<br>
- i40e_eth = &rte_eth_devices[port_id];<br>
rpst.i40e_pf_eth = i40e_eth;<br>
- rpst.i40e_pf_eth_port_id = port_id;<br>
+ rpst.i40e_pf_eth_port_id = i40e_eth->data->port_id;<br>
<br>
j++;<br>
break;<br>
diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c<br>
index d3459c5007..5700c6a2bf 100644<br>
--- a/drivers/net/memif/rte_eth_memif.c<br>
+++ b/drivers/net/memif/rte_eth_memif.c<br>
@@ -88,17 +88,14 @@ memif_mp_send_region(const struct rte_mp_msg *msg, const void *peer)<br>
const struct mp_region_msg *msg_param = (const struct mp_region_msg *)msg->param;<br>
struct rte_mp_msg reply;<br>
struct mp_region_msg *reply_param = (struct mp_region_msg *)reply.param;<br>
- uint16_t port_id;<br>
- int ret;<br>
<br>
/* Get requested port */<br>
- ret = rte_eth_dev_get_port_by_name(msg_param->port_name, &port_id);<br>
- if (ret) {<br>
+ dev = rte_eth_dev_get_by_name(msg_param->port_name);<br>
+ if (!dev) {<br>
MIF_LOG(ERR, "Failed to get port id for %s",<br>
msg_param->port_name);<br>
return -1;<br>
}<br>
- dev = &rte_eth_devices[port_id];<br>
proc_private = dev->process_private;<br>
<br>
memset(&reply, 0, sizeof(reply));<br>
diff --git a/drivers/net/softnic/rte_eth_softnic_thread.c b/drivers/net/softnic/rte_eth_softnic_thread.c<br>
index a8c26a5b23..4a9f2fa6a4 100644<br>
--- a/drivers/net/softnic/rte_eth_softnic_thread.c<br>
+++ b/drivers/net/softnic/rte_eth_softnic_thread.c<br>
@@ -129,14 +129,12 @@ thread_sc_service_up(struct pmd_internals *softnic, uint32_t thread_id)<br>
struct softnic_thread *t = &softnic->thread[thread_id];<br>
struct rte_eth_dev *dev;<br>
int status;<br>
- uint16_t port_id;<br>
<br>
/* service params */<br>
- status = rte_eth_dev_get_port_by_name(softnic-><a href="http://params.name" rel="noreferrer" target="_blank">params.name</a>, &port_id);<br>
- if (status)<br>
- return status;<br>
+ dev = rte_eth_dev_get_by_name(softnic-><a href="http://params.name" rel="noreferrer" target="_blank">params.name</a>);<br>
+ if (!dev)<br>
+ return -EINVAL;<br>
<br>
- dev = &rte_eth_devices[port_id];<br>
snprintf(<a href="http://service_params.name" rel="noreferrer" target="_blank">service_params.name</a>, sizeof(<a href="http://service_params.name" rel="noreferrer" target="_blank">service_params.name</a>), "%s_%u",<br>
softnic-><a href="http://params.name" rel="noreferrer" target="_blank">params.name</a>,<br>
thread_id);<br>
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c<br>
index 111037de65..bc3d56a311 100644<br>
--- a/drivers/net/tap/rte_eth_tap.c<br>
+++ b/drivers/net/tap/rte_eth_tap.c<br>
@@ -2428,19 +2428,16 @@ tap_mp_sync_queues(const struct rte_mp_msg *request, const void *peer)<br>
(const struct ipc_queues *)request->param;<br>
struct ipc_queues *reply_param =<br>
(struct ipc_queues *)reply.param;<br>
- uint16_t port_id;<br>
int queue;<br>
- int ret;<br>
<br>
/* Get requested port */<br>
TAP_LOG(DEBUG, "Received IPC request for %s", request_param->port_name);<br>
- ret = rte_eth_dev_get_port_by_name(request_param->port_name, &port_id);<br>
- if (ret) {<br>
+ dev = rte_eth_dev_get_by_name(request_param->port_name);<br>
+ if (!dev) {<br>
TAP_LOG(ERR, "Failed to get port id for %s",<br>
request_param->port_name);<br>
return -1;<br>
}<br>
- dev = &rte_eth_devices[port_id];<br>
process_private = dev->process_private;<br>
<br>
/* Fill file descriptors for all queues */<br>
-- <br>
2.17.1<br>
<br>
</blockquote></div>