[dpdk-dev] [PATCH v2 10/18] devargs: require bus name prefix

Gaetan Rivet gaetan.rivet at 6wind.com
Thu Oct 12 10:21:17 CEST 2017


The EAL now requires the bus to be prepended to the device declaration
string.

Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
---
 lib/librte_eal/common/eal_common_devargs.c | 28 +++++++++-------------------
 1 file changed, 9 insertions(+), 19 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c
index a21cc1a..49cc3b8 100644
--- a/lib/librte_eal/common/eal_common_devargs.c
+++ b/lib/librte_eal/common/eal_common_devargs.c
@@ -107,18 +107,17 @@ rte_eal_devargs_parse(struct rte_devargs *da, const char *format, ...)
 	va_start(ap, format);
 	vsnprintf(dev, sizeof(dev), format, ap);
 	va_end(ap);
-	/* Retrieve eventual bus info */
-	do {
-		devname = dev;
-		bus = rte_bus_find(bus, bus_name_cmp, dev);
-		if (bus == NULL)
-			break;
-		devname = dev + strlen(bus->name) + 1;
-		if (rte_bus_find_by_device_name(devname) == bus)
-			break;
-	} while (1);
+	/* Retrieve bus info */
+	bus = rte_bus_find(bus, bus_name_cmp, dev);
+	if (bus == NULL) {
+		fprintf(stderr, "ERROR: failed to parse bus from \"%s\"\n",
+			dev);
+		return -EFAULT;
+	}
+	da->bus = bus;
 	/* Store device name */
 	i = 0;
+	devname = dev + strlen(bus->name) + 1;
 	while (devname[i] != '\0' && devname[i] != ',') {
 		da->name[i] = devname[i];
 		i++;
@@ -130,15 +129,6 @@ rte_eal_devargs_parse(struct rte_devargs *da, const char *format, ...)
 		}
 	}
 	da->name[i] = '\0';
-	if (bus == NULL) {
-		bus = rte_bus_find_by_device_name(da->name);
-		if (bus == NULL) {
-			fprintf(stderr, "ERROR: failed to parse device \"%s\"\n",
-				da->name);
-			return -EFAULT;
-		}
-	}
-	da->bus = bus;
 	/* Parse eventual device arguments */
 	if (devname[i] == ',')
 		da->args = strdup(&devname[i + 1]);
-- 
2.1.4



More information about the dev mailing list