]> git.droids-corp.org - dpdk.git/commitdiff
eal: do not panic on bus probe/scan failure
authorAaron Conole <aconole@redhat.com>
Wed, 22 Mar 2017 20:19:39 +0000 (16:19 -0400)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 27 Mar 2017 13:59:06 +0000 (15:59 +0200)
For now, exit the init.  It's likely that even aborting the initialization
is premature in this case, as it may be possible to proceed even if one
bus or another is not available.

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/linuxapp/eal/eal.c

index debecaa84747b2b0ab52c5c5490e19baa8777044..4ee9c66fee5dcf14ee4f439c4eb11dfdc882aee7 100644 (file)
@@ -624,8 +624,11 @@ rte_eal_init(int argc, char **argv)
                rte_config.master_lcore, thread_id, cpuset,
                ret == 0 ? "" : "...");
 
-       if (rte_bus_scan())
-               rte_panic("Cannot scan the buses for devices\n");
+       if (rte_bus_scan()) {
+               rte_eal_init_alert("Cannot scan the buses for devices\n");
+               rte_errno = ENODEV;
+               return -1;
+       }
 
        RTE_LCORE_FOREACH_SLAVE(i) {
 
@@ -660,8 +663,11 @@ rte_eal_init(int argc, char **argv)
        rte_eal_mp_wait_lcore();
 
        /* Probe all the buses and devices/drivers on them */
-       if (rte_bus_probe())
-               rte_panic("Cannot probe devices\n");
+       if (rte_bus_probe()) {
+               rte_eal_init_alert("Cannot probe devices\n");
+               rte_errno = ENOTSUP;
+               return -1;
+       }
 
        /* Probe & Initialize PCI devices */
        if (rte_eal_pci_probe()) {
index 8abc1c6b5596f6692022947e99cba173a5ec8ef9..f0ded185b544d80f6604dfab2534241def5022e5 100644 (file)
@@ -899,8 +899,11 @@ rte_eal_init(int argc, char **argv)
                return -1;
        }
 
-       if (rte_bus_scan())
-               rte_panic("Cannot scan the buses for devices\n");
+       if (rte_bus_scan()) {
+               rte_eal_init_alert("Cannot scan the buses for devices\n");
+               rte_errno = ENODEV;
+               return -1;
+       }
 
        RTE_LCORE_FOREACH_SLAVE(i) {
 
@@ -939,8 +942,11 @@ rte_eal_init(int argc, char **argv)
        rte_eal_mp_wait_lcore();
 
        /* Probe all the buses and devices/drivers on them */
-       if (rte_bus_probe())
-               rte_panic("Cannot probe devices\n");
+       if (rte_bus_probe()) {
+               rte_eal_init_alert("Cannot probe devices\n");
+               rte_errno = ENOTSUP;
+               return -1;
+       }
 
        /* Probe & Initialize PCI devices */
        if (rte_eal_pci_probe()) {