]> git.droids-corp.org - dpdk.git/commitdiff
devargs: restore empty devargs
authorDavid Marchand <david.marchand@6wind.com>
Tue, 24 Feb 2015 09:41:31 +0000 (10:41 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 24 Feb 2015 19:23:11 +0000 (20:23 +0100)
Following commit c07691ae1089, an implicit change has been done in the
devargs API.
This triggers problem in virtual pmds that did not check for parameters
validity as it was implicitely valid.

Fix this by restoring the empty argument as "" and add a note in the api.
Restore associated tests.

Fixes: c07691ae1089 ("devargs: remove limit on parameters length")
Reported-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Tested-by: Tetsuya Mukawa <mukawa@igel.co.jp>
app/test/test_devargs.c
lib/librte_eal/common/eal_common_devargs.c
lib/librte_eal/common/include/rte_devargs.h

index 08fb7812d2fbb552cb096bc277c6ce57ba7bd2c7..f7fc59cdf4a37e05bc054f0881905c01ab18d1b6 100644 (file)
@@ -107,7 +107,7 @@ test_devargs(void)
                devargs->pci.addr.devid != 0 ||
                devargs->pci.addr.function != 1)
                goto fail;
-       if (devargs->args)
+       if (!devargs->args || strcmp(devargs->args, "") != 0)
                goto fail;
        free_devargs_list();
 
index 3aace0838a790d1c3d603e63d82037a5ab941a0f..eadd71975ccb372d873ece94053177e4c725bc71 100644 (file)
@@ -73,10 +73,13 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)
        if (sep != NULL) {
                sep[0] = '\0';
                devargs->args = strdup(sep + 1);
-               if (devargs->args == NULL) {
-                       RTE_LOG(ERR, EAL, "cannot allocate for devargs args\n");
-                       goto fail;
-               }
+       } else {
+               devargs->args = strdup("");
+       }
+
+       if (devargs->args == NULL) {
+               RTE_LOG(ERR, EAL, "cannot allocate for devargs args\n");
+               goto fail;
        }
 
        switch (devargs->type) {
index 996e1805375faa96e1e6af6b48e0c3504f45856a..68343339dc939d90be1e7bf75b8fce995be9a664 100644 (file)
@@ -88,7 +88,7 @@ struct rte_devargs {
                        char drv_name[32];
                } virtual;
        };
-       /** Arguments string as given by user. */
+       /** Arguments string as given by user or "" for no argument. */
        char *args;
 };