From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 31637A00C5 for ; Fri, 24 Dec 2021 12:05:31 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 12EFB410FC; Fri, 24 Dec 2021 12:05:31 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 5C05E4013F; Fri, 24 Dec 2021 12:05:28 +0100 (CET) Received: from dggeme762-chm.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4JL4300JHjzbjT8; Fri, 24 Dec 2021 19:05:00 +0800 (CST) Received: from dggpemm500008.china.huawei.com (7.185.36.136) by dggeme762-chm.china.huawei.com (10.3.19.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Fri, 24 Dec 2021 19:05:24 +0800 Received: from dggpemm500008.china.huawei.com ([7.185.36.136]) by dggpemm500008.china.huawei.com ([7.185.36.136]) with mapi id 15.01.2308.020; Fri, 24 Dec 2021 19:05:24 +0800 From: wangyunjian To: "Wang, Haiyue" , "dev@dpdk.org" CC: dingxiaoxiong , xudingke , "stable@dpdk.org" Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failure Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failure Thread-Index: AQHX6PkJeoBJME7IuEeW6vnUrmbBlKw6kLaAgAcIDQA= Date: Fri, 24 Dec 2021 11:05:24 +0000 Message-ID: <8c26904aee2d429da89af94de6336ac3@huawei.com> References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.174.242.157] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-CFilter-Loop: Reflected X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org > -----Original Message----- > From: Wang, Haiyue [mailto:haiyue.wang@intel.com] > Sent: Monday, December 20, 2021 3:37 PM > To: wangyunjian ; dev@dpdk.org > Cc: dingxiaoxiong ; xudingke > ; stable@dpdk.org > Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failur= e >=20 > > -----Original Message----- > > From: Yunjian Wang > > Sent: Saturday, December 4, 2021 18:24 > > To: dev@dpdk.org > > Cc: Wang, Haiyue ; dingxiaoxiong@huawei.com; > > xudingke@huawei.com; Yunjian Wang ; > > stable@dpdk.org > > Subject: [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failure > > > > The function ixgbe_fdir_filter_init() and ixgbe_l2_tn_filter_init() > > could return errors, the return value need to be checked and returned. > > > > Fixes: 080e3c0ee989 ("net/ixgbe: store flow director filter") > > Fixes: d0c0c416ef1f ("net/ixgbe: store L2 tunnel filter") > > Cc: stable@dpdk.org > > > > Signed-off-by: Yunjian Wang > > --- > > drivers/net/ixgbe/ixgbe_ethdev.c | 30 +++++++++++++++++++++--------- > > 1 file changed, 21 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c > > b/drivers/net/ixgbe/ixgbe_ethdev.c > > index fe61dba81d..25d6de7709 100644 > > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > > @@ -1223,13 +1223,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, > > void *init_params __rte_unused) > > > > /* initialize PF if max_vfs not zero */ > > ret =3D ixgbe_pf_host_init(eth_dev); > > - if (ret) { > > - rte_free(eth_dev->data->mac_addrs); > > - eth_dev->data->mac_addrs =3D NULL; > > - rte_free(eth_dev->data->hash_mac_addrs); > > - eth_dev->data->hash_mac_addrs =3D NULL; > > - return ret; > > - } > > + if (ret) > > + goto err_pf_host_init; > > > > ctrl_ext =3D IXGBE_READ_REG(hw, IXGBE_CTRL_EXT); > > /* let hardware know driver is loaded */ @@ -1268,10 +1263,14 @@ > > eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params > __rte_unused) > > TAILQ_INIT(&filter_info->fivetuple_list); > > > > /* initialize flow director filter list & hash */ > > - ixgbe_fdir_filter_init(eth_dev); > > + ret =3D ixgbe_fdir_filter_init(eth_dev); > > + if (ret) > > + goto err_fdir_filter_init; > > > > /* initialize l2 tunnel filter list & hash */ > > - ixgbe_l2_tn_filter_init(eth_dev); > > + ret =3D ixgbe_l2_tn_filter_init(eth_dev); > > + if (ret) > > + goto err_l2_tn_filter_init; > > > > /* initialize flow filter lists */ > > ixgbe_filterlist_init(); > > @@ -1283,6 +1282,19 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, > void *init_params __rte_unused) > > ixgbe_tm_conf_init(eth_dev); > > > > return 0; > > + > > +err_l2_tn_filter_init: > > + ixgbe_fdir_filter_uninit(eth_dev); > > +err_fdir_filter_init: > > + ixgbe_pf_host_uninit(eth_dev); >=20 > The interrupt needs to be closed ? >=20 > ixgbe_disable_intr(hw); >=20 > rte_intr_disable(intr_handle); >=20 > rte_intr_callback_unregister(intr_handle, ixgbe_dev_interrupt_handler, > eth_dev); OK, thanks for your suggestion, will include it in next version. >=20 > > + rte_intr_callback_unregister(intr_handle, > > + ixgbe_dev_interrupt_handler, eth_dev); > > +err_pf_host_init: > > + rte_free(eth_dev->data->mac_addrs); > > + eth_dev->data->mac_addrs =3D NULL; > > + rte_free(eth_dev->data->hash_mac_addrs); > > + eth_dev->data->hash_mac_addrs =3D NULL; > > + return ret; > > } > > > > static int > > -- > > 2.27.0