From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aaron Conole Subject: [PATCH v7 13/14] eal: do not panic when bus probe/scan fails Date: Wed, 22 Mar 2017 16:19:39 -0400 Message-ID: <20170322201940.24028-14-aconole@redhat.com> References: <20170322201940.24028-1-aconole@redhat.com> Cc: Bruce Richardson , Thomas Monjalon , Stephen Hemminger To: dev@dpdk.org Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 91BCB1075 for ; Wed, 22 Mar 2017 21:19:50 +0100 (CET) In-Reply-To: <20170322201940.24028-1-aconole@redhat.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- lib/librte_eal/bsdapp/eal/eal.c | 14 ++++++++++---- lib/librte_eal/linuxapp/eal/eal.c | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index ce10f81..93e44fa 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -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()) { diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 8abc1c6..f0ded18 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -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()) { -- 2.9.3