[dpdk-dev,v7,13/14] eal: do not panic when bus probe/scan fails
Checks
Commit Message
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>
---
lib/librte_eal/bsdapp/eal/eal.c | 14 ++++++++++----
lib/librte_eal/linuxapp/eal/eal.c | 14 ++++++++++----
2 files changed, 20 insertions(+), 8 deletions(-)
@@ -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()) {
@@ -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()) {