From: wangyunjian <wangyunjian@huawei.com>
To: "Wang, Haiyue" <haiyue.wang@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: dingxiaoxiong <dingxiaoxiong@huawei.com>,
xudingke <xudingke@huawei.com>,
"stable@dpdk.org" <stable@dpdk.org>
Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failure
Date: Fri, 24 Dec 2021 11:05:24 +0000 [thread overview]
Message-ID: <8c26904aee2d429da89af94de6336ac3@huawei.com> (raw)
In-Reply-To: <BYAPR11MB34954C3CAF2A12376D7D62C2F77B9@BYAPR11MB3495.namprd11.prod.outlook.com>
> -----Original Message-----
> From: Wang, Haiyue [mailto:haiyue.wang@intel.com]
> Sent: Monday, December 20, 2021 3:37 PM
> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org
> Cc: dingxiaoxiong <dingxiaoxiong@huawei.com>; xudingke
> <xudingke@huawei.com>; stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failure
>
> > -----Original Message-----
> > From: Yunjian Wang <wangyunjian@huawei.com>
> > Sent: Saturday, December 4, 2021 18:24
> > To: dev@dpdk.org
> > Cc: Wang, Haiyue <haiyue.wang@intel.com>; dingxiaoxiong@huawei.com;
> > xudingke@huawei.com; Yunjian Wang <wangyunjian@huawei.com>;
> > 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 <wangyunjian@huawei.com>
> > ---
> > 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 = ixgbe_pf_host_init(eth_dev);
> > - if (ret) {
> > - rte_free(eth_dev->data->mac_addrs);
> > - eth_dev->data->mac_addrs = NULL;
> > - rte_free(eth_dev->data->hash_mac_addrs);
> > - eth_dev->data->hash_mac_addrs = NULL;
> > - return ret;
> > - }
> > + if (ret)
> > + goto err_pf_host_init;
> >
> > ctrl_ext = 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 = 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 = 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);
>
> The interrupt needs to be closed ?
>
> ixgbe_disable_intr(hw);
>
> rte_intr_disable(intr_handle);
>
> rte_intr_callback_unregister(intr_handle, ixgbe_dev_interrupt_handler,
> eth_dev);
OK, thanks for your suggestion, will include it in next version.
>
> > + 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 = NULL;
> > + rte_free(eth_dev->data->hash_mac_addrs);
> > + eth_dev->data->hash_mac_addrs = NULL;
> > + return ret;
> > }
> >
> > static int
> > --
> > 2.27.0
next prev parent reply other threads:[~2021-12-24 11:05 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-04 10:23 [dpdk-dev] [PATCH] net/ixgbe: check ixgbe filter init failure Yunjian Wang
2021-12-20 7:37 ` Wang, Haiyue
2021-12-24 11:05 ` wangyunjian [this message]
2021-12-24 11:26 ` [PATCH v2 1/1] " Yunjian Wang
2021-12-30 5:32 ` Wang, Haiyue
2022-01-30 2:56 ` Zhang, Qi Z
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8c26904aee2d429da89af94de6336ac3@huawei.com \
--to=wangyunjian@huawei.com \
--cc=dev@dpdk.org \
--cc=dingxiaoxiong@huawei.com \
--cc=haiyue.wang@intel.com \
--cc=stable@dpdk.org \
--cc=xudingke@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.