From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liming Sun Subject: [PATCH 3/3] driver/net/mpipe: fix a mpipe link initialization ordering issue Date: Tue, 15 Dec 2015 10:37:31 -0500 Message-ID: <1450193851-9100-4-git-send-email-lsun@ezchip.com> References: <1450193851-9100-1-git-send-email-lsun@ezchip.com> Mime-Version: 1.0 Content-Type: text/plain To: Return-path: Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0057.outbound.protection.outlook.com [157.56.112.57]) by dpdk.org (Postfix) with ESMTP id 56FAC8D97 for ; Tue, 15 Dec 2015 16:37:53 +0100 (CET) In-Reply-To: <1450193851-9100-1-git-send-email-lsun@ezchip.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Mpipe link structure is initialized in function mpipe_link_init(). Currently it's only called from the eth_dev_ops.dev_start, which caused crashes when link mgmt APIs (like promiscuous_enable) was called before eth_dev_ops.dev_start(). This submit fixed it by calling mpipe_link_init() in rte_pmd_mpipe_devinit(). Signed-off-by: Liming Sun --- drivers/net/mpipe/mpipe_tilegx.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/mpipe/mpipe_tilegx.c b/drivers/net/mpipe/mpipe_tilegx.c index be7b6f2..5845511 100644 --- a/drivers/net/mpipe/mpipe_tilegx.c +++ b/drivers/net/mpipe/mpipe_tilegx.c @@ -752,13 +752,6 @@ mpipe_init(struct mpipe_dev_priv *priv) if (priv->initialized) return 0; - rc = mpipe_link_init(priv); - if (rc < 0) { - RTE_LOG(ERR, PMD, "%s: Failed to init link.\n", - mpipe_name(priv)); - return rc; - } - rc = mpipe_recv_init(priv); if (rc < 0) { RTE_LOG(ERR, PMD, "%s: Failed to init rx.\n", @@ -1633,6 +1626,13 @@ rte_pmd_mpipe_devinit(const char *ifname, eth_dev->rx_pkt_burst = &mpipe_recv_pkts; eth_dev->tx_pkt_burst = &mpipe_xmit_pkts; + rc = mpipe_link_init(priv); + if (rc < 0) { + RTE_LOG(ERR, PMD, "%s: Failed to init link.\n", + mpipe_name(priv)); + return rc; + } + return 0; } -- 1.7.1