From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E916AA04E6; Sat, 31 Oct 2020 11:02:11 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 923E1CA38; Sat, 31 Oct 2020 11:02:09 +0100 (CET) Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) by dpdk.org (Postfix) with ESMTP id F2593CA1E for ; Sat, 31 Oct 2020 11:02:07 +0100 (CET) Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4CNZTp1KCDz6vYN for ; Sat, 31 Oct 2020 18:02:06 +0800 (CST) Received: from [10.174.178.215] (10.174.178.215) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.487.0; Sat, 31 Oct 2020 18:01:55 +0800 From: Qingqing Li To: , , CC: Hushiyuan References: Message-ID: <836f40cb-57a9-7b02-adcc-dd302a93a722@huawei.com> Date: Sat, 31 Oct 2020 18:01:55 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.178.215] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [v4]net/hinic: fix coredump when the scondary process using the hinic port. 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" From adb560f53b1a1585dc32adfb0e44e404e1198c96 Mon Sep 17 00:00:00 2001 From: liqingqing Date: Sat, 31 Oct 2020 06:02:57 -0400 Subject: [v4] net/hinic: fix coredump when the scondary process using the hinic port. fix coredump when secondary process using the hinic port. the reason is that during the stage of secondary process port initialization, it lack the initialization of "eth_dev->dev_ops". Signed-off-by: Qingqing Li --- v4: adapt to the latest version. --- v3: update the signed-off information. --- v2: solve the coding style issue. Signed-off-by: liqingqing --- drivers/net/hinic/hinic_pmd_ethdev.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c index b694fd83c..526dafdad 100644 --- a/drivers/net/hinic/hinic_pmd_ethdev.c +++ b/drivers/net/hinic/hinic_pmd_ethdev.c @@ -3100,14 +3100,6 @@ static int hinic_func_init(struct rte_eth_dev *eth_dev) pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); - /* EAL is SECONDARY and eth_dev is already created */ - if (rte_eal_process_type() != RTE_PROC_PRIMARY) { - PMD_DRV_LOG(INFO, "Initialize %s in secondary process", - eth_dev->data->name); - - return 0; - } - eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(eth_dev); @@ -3241,6 +3233,18 @@ static int hinic_dev_init(struct rte_eth_dev *eth_dev) eth_dev->rx_pkt_burst = hinic_recv_pkts; eth_dev->tx_pkt_burst = hinic_xmit_pkts; + /* EAL is SECONDARY and eth_dev is already created */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) { + PMD_DRV_LOG(INFO, "Initialize %s in secondary process", eth_dev->data->name); + + struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(eth_dev); + if (HINIC_IS_VF(nic_dev->hwdev)) + eth_dev->dev_ops = &hinic_pmd_vf_ops; + else + eth_dev->dev_ops = &hinic_pmd_ops; + return 0; + } + return hinic_func_init(eth_dev); } -- 2.19.1