devargs: make bus optional
authorXueming Li <xuemingl@nvidia.com>
Wed, 20 Oct 2021 15:47:38 +0000 (23:47 +0800)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 21 Oct 2021 09:32:44 +0000 (11:32 +0200)
Global devargs syntax is used as device iteration filter like
"class=vdpa", a devargs without bus args is valid from parsing
perspective.

This patch makes bus args optional.

Fixes: d2a66ad79480 ("bus: add device arguments name parsing")

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: Gaetan Rivet <grive@u256.net>
drivers/bus/pci/pci_params.c
lib/eal/common/eal_common_devargs.c

index 21c2e1d..60b424b 100644 (file)
@@ -87,11 +87,10 @@ rte_pci_devargs_parse(struct rte_devargs *da)
        struct rte_kvargs *kvargs;
        const char *addr_str;
        struct rte_pci_addr addr;
-       int ret;
+       int ret = 0;
 
-       if (da == NULL)
+       if (da == NULL || da->bus_str == NULL)
                return 0;
-       RTE_ASSERT(da->bus_str != NULL);
 
        kvargs = rte_kvargs_parse(da->bus_str, NULL);
        if (kvargs == NULL) {
@@ -103,9 +102,8 @@ rte_pci_devargs_parse(struct rte_devargs *da)
 
        addr_str = rte_kvargs_get(kvargs, pci_params_keys[RTE_PCI_PARAM_ADDR]);
        if (addr_str == NULL) {
-               RTE_LOG(ERR, EAL, "No PCI address specified using '%s=<id>' in: %s\n",
+               RTE_LOG(DEBUG, EAL, "No PCI address specified using '%s=<id>' in: %s\n",
                        pci_params_keys[RTE_PCI_PARAM_ADDR], da->bus_str);
-               ret = -ENODEV;
                goto out;
        }
 
index d673598..8c7650c 100644 (file)
@@ -39,7 +39,7 @@ devargs_bus_parse_default(struct rte_devargs *devargs,
        /* Parse devargs name from bus key-value list. */
        name = rte_kvargs_get(bus_args, "name");
        if (name == NULL) {
-               RTE_LOG(INFO, EAL, "devargs name not found: %s\n",
+               RTE_LOG(DEBUG, EAL, "devargs name not found: %s\n",
                        devargs->data);
                return 0;
        }