From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id E47F1282 for ; Wed, 8 Feb 2017 19:51:49 +0100 (CET) Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5F6B17FB85; Wed, 8 Feb 2017 18:51:50 +0000 (UTC) Received: from dhcp-25-97.bos.redhat.com (dhcp-25-172.bos.redhat.com [10.18.25.172]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v18Iphvm031037; Wed, 8 Feb 2017 13:51:49 -0500 From: Aaron Conole To: dev@dpdk.org Cc: Stephen Hemminger , Bruce Richardson Date: Wed, 8 Feb 2017 13:51:28 -0500 Message-Id: <20170208185142.28678-12-aconole@redhat.com> In-Reply-To: <20170208185142.28678-1-aconole@redhat.com> References: <20170208185142.28678-1-aconole@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 08 Feb 2017 18:51:50 +0000 (UTC) Subject: [dpdk-dev] [PATCH v2 11/25] eal: Do not panic on pci-probe 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: , X-List-Received-Date: Wed, 08 Feb 2017 18:51:50 -0000 This will usually be an issue because of permissions. However, it could also be caused by OOM. In either case, errno will contain the underlying cause. It is safe to re-init the system here, so allow the application to take corrective action and reinit. Signed-off-by: Aaron Conole --- lib/librte_eal/linuxapp/eal/eal.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 1d828bf..ab1aeef 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -826,8 +826,12 @@ rte_eal_init(int argc, char **argv) return -1; } - if (rte_eal_pci_init() < 0) - rte_panic("Cannot init PCI\n"); + if (rte_eal_pci_init() < 0) { + RTE_LOG(ERR, EAL, "Cannot init PCI\n"); + rte_errno = EUNATCH; + rte_atomic32_clear(&run_once); + return -1; + } #ifdef VFIO_PRESENT if (rte_eal_vfio_setup() < 0) -- 2.9.3