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 DD3021075 for ; Wed, 22 Mar 2017 21:19:49 +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 348EBA0C30; Wed, 22 Mar 2017 20:19:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 348EBA0C30 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=aconole@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 348EBA0C30 Received: from dhcp-25-97.bos.redhat.com (unknown [10.18.25.172]) by smtp.corp.redhat.com (Postfix) with ESMTP id A7A241820C; Wed, 22 Mar 2017 20:19:49 +0000 (UTC) From: Aaron Conole To: dev@dpdk.org Cc: Bruce Richardson , Thomas Monjalon , Stephen Hemminger Date: Wed, 22 Mar 2017 16:19:38 -0400 Message-Id: <20170322201940.24028-13-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.39]); Wed, 22 Mar 2017 20:19:50 +0000 (UTC) Subject: [dpdk-dev] [PATCH v7 12/14] eal: do not panic if vdev init 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: , X-List-Received-Date: Wed, 22 Mar 2017 20:19:50 -0000 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 --- 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 75ddf31..ce10f81 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 4f3b493..9889997 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 354d0d8..8abc1c6 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.9.3