eventdev: update get id from name to include PCI devices

Message ID 20180615034524.28623-1-pbhagavatula@caviumnetworks.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series eventdev: update get id from name to include PCI devices |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Pavan Nikhilesh June 15, 2018, 3:45 a.m. UTC
  Currently, rte_event_dev_get_dev_id works only for virtual devices(vdev)
update the function to include devices probed through pci.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
---
 lib/librte_eventdev/rte_eventdev.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
  

Comments

Jerin Jacob June 17, 2018, 2:31 p.m. UTC | #1
-----Original Message-----
> Date: Fri, 15 Jun 2018 09:15:24 +0530
> From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> To: jerin.jacob@caviumnetworks.com
> Cc: dev@dpdk.org, Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> Subject: [dpdk-dev] [PATCH] eventdev: update get id from name to include
>  PCI devices
> X-Mailer: git-send-email 2.17.1
> 
> Currently, rte_event_dev_get_dev_id works only for virtual devices(vdev)
> update the function to include devices probed through pci.
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>


Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>


> ---
>  lib/librte_eventdev/rte_eventdev.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
> index 7ca9fd145..801810edd 100644
> --- a/lib/librte_eventdev/rte_eventdev.c
> +++ b/lib/librte_eventdev/rte_eventdev.c
> @@ -57,16 +57,21 @@ int
>  rte_event_dev_get_dev_id(const char *name)
>  {
>  	int i;
> +	uint8_t cmp;
>  
>  	if (!name)
>  		return -EINVAL;
>  
> -	for (i = 0; i < rte_eventdev_globals->nb_devs; i++)
> -		if ((strcmp(rte_event_devices[i].data->name, name)
> -				== 0) &&
> -				(rte_event_devices[i].attached ==
> -						RTE_EVENTDEV_ATTACHED))
> +	for (i = 0; i < rte_eventdev_globals->nb_devs; i++) {
> +		cmp = (strncmp(rte_event_devices[i].data->name, name,
> +				RTE_EVENTDEV_NAME_MAX_LEN) == 0) ||
> +			(rte_event_devices[i].dev ? (strncmp(
> +				rte_event_devices[i].dev->driver->name, name,
> +					 RTE_EVENTDEV_NAME_MAX_LEN) == 0) : 0);
> +		if (cmp && (rte_event_devices[i].attached ==
> +					RTE_EVENTDEV_ATTACHED))
>  			return i;
> +	}
>  	return -ENODEV;
>  }
>  
> -- 
> 2.17.1
>
  
Jerin Jacob June 24, 2018, 11:26 a.m. UTC | #2
-----Original Message-----
> Date: Sun, 17 Jun 2018 20:01:51 +0530
> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> To: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> CC: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] eventdev: update get id from name to
>  include PCI devices
> User-Agent: Mutt/1.10.0 (2018-05-17)
> 
> 
> -----Original Message-----
> > Date: Fri, 15 Jun 2018 09:15:24 +0530
> > From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> > To: jerin.jacob@caviumnetworks.com
> > Cc: dev@dpdk.org, Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> > Subject: [dpdk-dev] [PATCH] eventdev: update get id from name to include
> >  PCI devices
> > X-Mailer: git-send-email 2.17.1
> >
> > Currently, rte_event_dev_get_dev_id works only for virtual devices(vdev)
> > update the function to include devices probed through pci.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> 
> 
> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

Applied to dpdk-next-eventdev/master. Thanks.
  

Patch

diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c
index 7ca9fd145..801810edd 100644
--- a/lib/librte_eventdev/rte_eventdev.c
+++ b/lib/librte_eventdev/rte_eventdev.c
@@ -57,16 +57,21 @@  int
 rte_event_dev_get_dev_id(const char *name)
 {
 	int i;
+	uint8_t cmp;
 
 	if (!name)
 		return -EINVAL;
 
-	for (i = 0; i < rte_eventdev_globals->nb_devs; i++)
-		if ((strcmp(rte_event_devices[i].data->name, name)
-				== 0) &&
-				(rte_event_devices[i].attached ==
-						RTE_EVENTDEV_ATTACHED))
+	for (i = 0; i < rte_eventdev_globals->nb_devs; i++) {
+		cmp = (strncmp(rte_event_devices[i].data->name, name,
+				RTE_EVENTDEV_NAME_MAX_LEN) == 0) ||
+			(rte_event_devices[i].dev ? (strncmp(
+				rte_event_devices[i].dev->driver->name, name,
+					 RTE_EVENTDEV_NAME_MAX_LEN) == 0) : 0);
+		if (cmp && (rte_event_devices[i].attached ==
+					RTE_EVENTDEV_ATTACHED))
 			return i;
+	}
 	return -ENODEV;
 }