From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aaron Conole Subject: [PATCH v4 11/26] eal: Do not panic on pci-probe Date: Sat, 25 Feb 2017 11:02:54 -0500 Message-ID: <20170225160309.31270-12-aconole@redhat.com> References: <20170209142953.8167-1-aconole@redhat.com> <20170225160309.31270-1-aconole@redhat.com> Cc: Stephen Hemminger , Bruce Richardson 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 6D6DE2BFF for ; Sat, 25 Feb 2017 17:03:18 +0100 (CET) In-Reply-To: <20170225160309.31270-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" 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 25f8ae8..5534b4b 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -831,8 +831,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