]> git.droids-corp.org - dpdk.git/commitdiff
eal: do not panic on vdev init failure
authorAaron Conole <aconole@redhat.com>
Wed, 22 Mar 2017 20:19:38 +0000 (16:19 -0400)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 27 Mar 2017 13:58:28 +0000 (15:58 +0200)
Even if one vdev should fail, there's no need to prevent further
processing.  Log the error, and reflect it to the higher levels to
decide.

Seems like it's possible to continue.  At least, the error is reflected
properly in the logs.  A user could then go and correct or investigate
the situation.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_eal/bsdapp/eal/eal.c
lib/librte_eal/common/eal_common_dev.c
lib/librte_eal/linuxapp/eal/eal.c

index f94b1b4ebb828af817d0d499f7ffabea89c53e8a..debecaa84747b2b0ab52c5c5490e19baa8777044 100644 (file)
@@ -671,7 +671,7 @@ rte_eal_init(int argc, char **argv)
        }
 
        if (rte_eal_dev_init() < 0)
-               rte_panic("Cannot init pmd devices\n");
+               rte_eal_init_alert("Cannot init pmd devices\n");
 
        rte_eal_mcfg_complete();
 
index 4f3b4934a347d73c13de408a99da60978ce8edc8..98899974eab7349ed0d698cf414df7cfa84bd2b8 100644 (file)
@@ -80,6 +80,7 @@ int
 rte_eal_dev_init(void)
 {
        struct rte_devargs *devargs;
+       int ret = 0;
 
        /*
         * Note that the dev_driver_list is populated here
@@ -97,11 +98,11 @@ rte_eal_dev_init(void)
                                        devargs->args)) {
                        RTE_LOG(ERR, EAL, "failed to initialize %s device\n",
                                        devargs->virt.drv_name);
-                       return -1;
+                       ret = -1;
                }
        }
 
-       return 0;
+       return ret;
 }
 
 int rte_eal_dev_attach(const char *name, const char *devargs)
index 354d0d80d369cbc985bf4b567122e9bd75db5b1d..8abc1c6b5596f6692022947e99cba173a5ec8ef9 100644 (file)
@@ -950,7 +950,7 @@ rte_eal_init(int argc, char **argv)
        }
 
        if (rte_eal_dev_init() < 0)
-               rte_panic("Cannot init pmd devices\n");
+               rte_eal_init_alert("Cannot init pmd devices\n");
 
        rte_eal_mcfg_complete();