From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wu, Jingjing" Subject: Re: [PATCH v2] net/i40e: fix mirror rule reset when port is stopped Date: Wed, 13 Sep 2017 07:32:53 +0000 Message-ID: <9BB6961774997848B5B42BEC655768F810E48C44@SHSMSX103.ccr.corp.intel.com> References: <1504709549-50804-1-git-send-email-wei.dai@intel.com> <1505095919-4682-1-git-send-email-wei.dai@intel.com> <94479800C636CB44BD422CB454846E013201ACB7@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , "Dai, Wei" , "stable@dpdk.org" To: "Xing, Beilei" , "Dai, Wei" Return-path: In-Reply-To: <94479800C636CB44BD422CB454846E013201ACB7@SHSMSX101.ccr.corp.intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Xing, Beilei > Sent: Monday, September 11, 2017 10:46 AM > To: Dai, Wei ; Wu, Jingjing > Cc: dev@dpdk.org; Dai, Wei ; stable@dpdk.org > Subject: RE: [dpdk-dev] [PATCH v2] net/i40e: fix mirror rule reset when p= ort is > stopped >=20 >=20 > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wei Dai > > Sent: Monday, September 11, 2017 10:12 AM > > To: Wu, Jingjing ; Xing, Beilei > > > > Cc: dev@dpdk.org; Dai, Wei ; stable@dpdk.org > > Subject: [dpdk-dev] [PATCH v2] net/i40e: fix mirror rule reset when > > port is stopped > > > > When an i40e PF port is stopped, all mirror rules should be removed. > > All rule related software and hardware resources should also be removed= . > > > > Fixes: a4def5edf0fc ("i40e: enable port mirroring") > > Cc: stable@dpdk.org > > > > Signed-off-by: Wei Dai > > Tested-by: Lijuan Tu > > --- > > drivers/net/i40e/i40e_ethdev.c | 18 +++++++++++++++--- > > 1 file changed, 15 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/net/i40e/i40e_ethdev.c > > b/drivers/net/i40e/i40e_ethdev.c index 5f26e24..a278748 100644 > > --- a/drivers/net/i40e/i40e_ethdev.c > > +++ b/drivers/net/i40e/i40e_ethdev.c > > @@ -2094,10 +2094,22 @@ i40e_dev_stop(struct rte_eth_dev *dev) > > > > /* Remove all mirror rules */ > > while ((p_mirror =3D TAILQ_FIRST(&pf->mirror_list))) { > > - TAILQ_REMOVE(&pf->mirror_list, p_mirror, rules); > > - rte_free(p_mirror); > > + int ret; > > + ret =3D i40e_aq_del_mirror_rule(hw, pf->main_vsi->veb->seid, > > + p_mirror->rule_type, > > + p_mirror->entries, > > + p_mirror->num_entries, > > + p_mirror->id); > > + if (ret < 0) { > > + PMD_DRV_LOG(ERR, "failed to remove mirror rule: " > > + "status =3D %d, aq_err =3D %d.", ret, > > + hw->aq.asq_last_status); > > + } else { > > + TAILQ_REMOVE(&pf->mirror_list, p_mirror, rules); > > + rte_free(p_mirror); > > + pf->nb_mirror_rule--; > > + } >=20 > little comment: else statement can be omitted here. >=20 Another minor coding style comment: Do not use braces (``{`` and ``}``) for control statements with zero or jus= t a single statement, unless that statement is more than a single line in w= hich case the braces are permitted. > > } > > - pf->nb_mirror_rule =3D 0; > > > > if (!rte_intr_allow_others(intr_handle)) > > /* resume to the default handler */ > > -- > > 2.7.5