From e2c0413f2d0df911c49ebfeee2c595e4ee1f0fee Mon Sep 17 00:00:00 2001 From: Aaron Conole Date: Wed, 22 Mar 2017 16:19:38 -0400 Subject: [PATCH] eal: do not panic on vdev init failure 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 Acked-by: Bruce Richardson --- lib/librte_eal/bsdapp/eal/eal.c | 2 +- lib/librte_eal/common/eal_common_dev.c | 5 +++-- lib/librte_eal/linuxapp/eal/eal.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index f94b1b4ebb..debecaa847 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -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(); diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c index 4f3b4934a3..98899974ea 100644 --- a/lib/librte_eal/common/eal_common_dev.c +++ b/lib/librte_eal/common/eal_common_dev.c @@ -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) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 354d0d80d3..8abc1c6b55 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -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(); -- 2.20.1