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 1DD3DA0A0A for ; Thu, 3 Jun 2021 07:18:22 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E784C4067A; Thu, 3 Jun 2021 07:18:21 +0200 (CEST) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by mails.dpdk.org (Postfix) with ESMTP id 7D73A4067A for ; Thu, 3 Jun 2021 07:18:20 +0200 (CEST) Received: from mail-qk1-f198.google.com ([209.85.222.198]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lofkK-0002TP-78 for stable@dpdk.org; Thu, 03 Jun 2021 05:18:20 +0000 Received: by mail-qk1-f198.google.com with SMTP id s123-20020a3777810000b02902e9adec2313so3494934qkc.4 for ; Wed, 02 Jun 2021 22:18:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=MPioLUlb1RDNwJS7/kRMPG5A6cCgHI7SR9j5noEvgkg=; b=uLukihk8v7j+3DJkmVfFd69VSDWa++SA+lsJf/8b9i9TNo5fYOoEsea55wvoxHhWp2 bIL3ao4cRxECe7oh5v+A73LdOoHssMhQ0hythqJ5GM+mgqiy0iPf+YEM0ywA2AKU16LK Jzw6FD4+dw63vDnXYgwFqHXIN20u0+0o9qZyFaSaLYxrBWXR5AArLANHYqiSPwVtPUVB lb1AJXZWvPMa09Xw4+QxogNDkD877uIfmc852Lm9kzvWGNDfJvZWff7x4FDaaw0C2tNj i6biOTAXMN1zCHpC1HdENF12Ncwlc2uP9FbB5eyXQQZmkIxNzwtD/xB+33myUcT48JHg 6mJA== X-Gm-Message-State: AOAM532Ianq27+HtqmiuU9GzbFSeo7saHzsPGtFPI1o2OZJ4j+1HHdvQ TmJg2mnWANsUR4MiRE8nXW6qfHIWhA1lk3/6C7VjfBypXYuOgcu6L7M7FlQhQfmPruc769HMMb+ N/ngGWyUQBM9u3UgoVa8CQrrtZi/YBydLKGJN4dZG X-Received: by 2002:ac8:72d8:: with SMTP id o24mr27425949qtp.321.1622697499112; Wed, 02 Jun 2021 22:18:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwcXQeQBjA+OeRNWXdkcw/4ueQL8SugwZTyIaqMnXSV9az4MQ0JXP3vT/w44KjHgg3Sq5GsnRUMGKSa1vtCCG0= X-Received: by 2002:ac8:72d8:: with SMTP id o24mr27425942qtp.321.1622697498878; Wed, 02 Jun 2021 22:18:18 -0700 (PDT) MIME-Version: 1.0 References: <20210429143622.27557-1-kalesh-anakkur.purayil@broadcom.com> In-Reply-To: <20210429143622.27557-1-kalesh-anakkur.purayil@broadcom.com> From: Christian Ehrhardt Date: Thu, 3 Jun 2021 07:17:53 +0200 Message-ID: To: Kalesh A P Cc: dpdk stable Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-stable] [PATCH 19.11] net/bnxt: reset filter indices on free 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 Sender: "stable" On Thu, Apr 29, 2021 at 4:14 PM Kalesh A P wrote: > > From: Kalesh AP > > [ upstream commit 7105de7085b022a84ffefbfad6a140e493ee0612 ] Thanks for the backport, applied > Fix bnxt_free_filter() to ensure that the filter indices > are reset correctly when a filter is freed. > > This change helps in avoiding few duplicate code as well. > > Fixes: 51fafb89a9a0 ("net/bnxt: get rid of ff pools and use VNIC info array") > Fixes: 5c1171c97216 ("net/bnxt: refactor filter/flow") > > Signed-off-by: Kalesh AP > Reviewed-by: Somnath Kotur > Reviewed-by: Ajit Khaparde > --- > drivers/net/bnxt/bnxt_ethdev.c | 10 ---------- > drivers/net/bnxt/bnxt_filter.c | 5 +++++ > drivers/net/bnxt/bnxt_flow.c | 1 - > 3 files changed, 5 insertions(+), 11 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c > index 06843d8..7ec72a1 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -1038,8 +1038,6 @@ static void bnxt_mac_addr_remove_op(struct rte_eth_dev *eth_dev, > STAILQ_REMOVE(&vnic->filter, filter, > bnxt_filter_info, next); > bnxt_hwrm_clear_l2_filter(bp, filter); > - filter->mac_index = INVALID_MAC_INDEX; > - memset(&filter->l2_addr, 0, RTE_ETHER_ADDR_LEN); > bnxt_free_filter(bp, filter); > } > filter = temp_filter; > @@ -1086,7 +1084,6 @@ static int bnxt_add_mac_filter(struct bnxt *bp, struct bnxt_vnic_info *vnic, > else > STAILQ_INSERT_TAIL(&vnic->filter, filter, next); > } else { > - memset(&filter->l2_addr, 0, RTE_ETHER_ADDR_LEN); > bnxt_free_filter(bp, filter); > } > > @@ -1841,7 +1838,6 @@ static int bnxt_add_vlan_filter(struct bnxt *bp, uint16_t vlan_id) > /* Free the newly allocated filter as we were > * not able to create the filter in hardware. > */ > - filter->fw_l2_filter_id = UINT64_MAX; > bnxt_free_filter(bp, filter); > return rc; > } > @@ -1896,7 +1892,6 @@ static int bnxt_del_dflt_mac_filter(struct bnxt *bp, > STAILQ_REMOVE(&vnic->filter, filter, > bnxt_filter_info, next); > bnxt_free_filter(bp, filter); > - filter->fw_l2_filter_id = UINT64_MAX; > } > return rc; > } > @@ -2845,14 +2840,11 @@ bnxt_cfg_ntuple_filter(struct bnxt *bp, > > STAILQ_REMOVE(&vnic->filter, mfilter, bnxt_filter_info, next); > bnxt_free_filter(bp, mfilter); > - mfilter->fw_l2_filter_id = -1; > bnxt_free_filter(bp, bfilter); > - bfilter->fw_l2_filter_id = -1; > } > > return 0; > free_filter: > - bfilter->fw_l2_filter_id = -1; > bnxt_free_filter(bp, bfilter); > return ret; > } > @@ -3250,7 +3242,6 @@ bnxt_fdir_filter(struct rte_eth_dev *dev, > STAILQ_REMOVE(&vnic->filter, match, > bnxt_filter_info, next); > bnxt_free_filter(bp, match); > - filter->fw_l2_filter_id = -1; > bnxt_free_filter(bp, filter); > } > break; > @@ -3283,7 +3274,6 @@ bnxt_fdir_filter(struct rte_eth_dev *dev, > return ret; > > free_filter: > - filter->fw_l2_filter_id = -1; > bnxt_free_filter(bp, filter); > return ret; > } > diff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c > index f4b18d5..2b33d26 100644 > --- a/drivers/net/bnxt/bnxt_filter.c > +++ b/drivers/net/bnxt/bnxt_filter.c > @@ -193,5 +193,10 @@ struct bnxt_filter_info *bnxt_get_unused_filter(struct bnxt *bp) > > void bnxt_free_filter(struct bnxt *bp, struct bnxt_filter_info *filter) > { > + memset(filter, 0, sizeof(*filter)); > + filter->mac_index = INVALID_MAC_INDEX; > + filter->fw_l2_filter_id = UINT64_MAX; > + filter->fw_ntuple_filter_id = UINT64_MAX; > + filter->fw_em_filter_id = UINT64_MAX; > STAILQ_INSERT_TAIL(&bp->free_filter_list, filter, next); > } > diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c > index f069e5f..575924a 100644 > --- a/drivers/net/bnxt/bnxt_flow.c > +++ b/drivers/net/bnxt/bnxt_flow.c > @@ -1502,7 +1502,6 @@ bnxt_flow_validate(struct rte_eth_dev *dev, > > exit: > /* No need to hold on to this filter if we are just validating flow */ > - filter->fw_l2_filter_id = UINT64_MAX; > bnxt_free_filter(bp, filter); > bnxt_release_flow_lock(bp); > > -- > 2.10.1 > -- Christian Ehrhardt Staff Engineer, Ubuntu Server Canonical Ltd