From patchwork Wed Mar 22 20:19:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Conole X-Patchwork-Id: 22103 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id A352AD14C; Wed, 22 Mar 2017 21:21:06 +0100 (CET) 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) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D749A8E673; Wed, 22 Mar 2017 20:19:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D749A8E673 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=aconole@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D749A8E673 Received: from dhcp-25-97.bos.redhat.com (unknown [10.18.25.172]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5596418201; Wed, 22 Mar 2017 20:19:50 +0000 (UTC) From: Aaron Conole To: dev@dpdk.org Cc: Bruce Richardson , Thomas Monjalon , Stephen Hemminger Date: Wed, 22 Mar 2017 16:19:39 -0400 Message-Id: <20170322201940.24028-14-aconole@redhat.com> In-Reply-To: <20170322201940.24028-1-aconole@redhat.com> References: <20170322201940.24028-1-aconole@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 22 Mar 2017 20:19:51 +0000 (UTC) Subject: [dpdk-dev] [PATCH v7 13/14] eal: do not panic when bus probe/scan fails X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list 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()) {