From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xing, Beilei" Subject: Re: [PATCH v2 12/17] net/i40e: destroy ethertype filter Date: Wed, 28 Dec 2016 07:29:09 +0000 Message-ID: <94479800C636CB44BD422CB454846E013158C018@SHSMSX101.ccr.corp.intel.com> References: <1480679625-4157-1-git-send-email-beilei.xing@intel.com> <1482819984-14120-1-git-send-email-beilei.xing@intel.com> <1482819984-14120-13-git-send-email-beilei.xing@intel.com> <9BB6961774997848B5B42BEC655768F810CC00FA@SHSMSX103.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" To: "Wu, Jingjing" , "Zhang, Helin" Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id BFAC520F for ; Wed, 28 Dec 2016 08:29:25 +0100 (CET) In-Reply-To: <9BB6961774997848B5B42BEC655768F810CC00FA@SHSMSX103.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: Wu, Jingjing > Sent: Wednesday, December 28, 2016 11:30 AM > To: Xing, Beilei ; Zhang, Helin > > Cc: dev@dpdk.org > Subject: RE: [PATCH v2 12/17] net/i40e: destroy ethertype filter >=20 > > > > const struct rte_flow_ops i40e_flow_ops =3D { > > .validate =3D i40e_flow_validate, > > @@ -1492,11 +1495,16 @@ i40e_flow_destroy(__rte_unused struct > > rte_eth_dev *dev, > > struct rte_flow *flow, > > struct rte_flow_error *error) > > { > > + struct i40e_pf *pf =3D I40E_DEV_PRIVATE_TO_PF(dev->data- > > >dev_private); > > struct i40e_flow *pmd_flow =3D (struct i40e_flow *)flow; > > enum rte_filter_type filter_type =3D pmd_flow->filter_type; > > int ret; > > > > switch (filter_type) { > > + case RTE_ETH_FILTER_ETHERTYPE: > > + ret =3D i40e_dev_destroy_ethertype_filter(pf, > > + (struct i40e_ethertype_filter *)pmd_flow- > >rule); > > + break; > > default: > > PMD_DRV_LOG(WARNING, "Filter type (%d) not supported", > > filter_type); > > @@ -1504,10 +1512,49 @@ i40e_flow_destroy(__rte_unused struct > > rte_eth_dev *dev, > > break; > > } > > > > - if (ret) > > + if (!ret) { > > + TAILQ_REMOVE(&pf->flow_list, pmd_flow, node); > > + free(pmd_flow); > Should it be freed inside the function? Is the API definition like that? Yes, since API or rte won't free the flow allocated by PMD. Please refer to= the attached mail.