]> git.droids-corp.org - dpdk.git/commitdiff
net/bnxt: fix RSS context cleanup
authorAjit Khaparde <ajit.khaparde@broadcom.com>
Tue, 16 Mar 2021 05:42:40 +0000 (22:42 -0700)
committerAjit Khaparde <ajit.khaparde@broadcom.com>
Fri, 19 Mar 2021 19:29:54 +0000 (20:29 +0100)
The PMD is allocating an extra RSS context with each port start.
But it is freeing only one RSS context during port stop. So at some point
we run out of RSS contexts when we do multiple port stop/start sequences.
bnxt_hwrm_vnic_ctx_alloc() is called by bnxt_setup_one_vnic(), but
bnxt_hwrm_vnic_ctx_free() is not called in the corresponding
bnxt_free_one_vnic().

Fix this by calling bnxt_hwrm_vnic_ctx_free() in bnxt_free_one_vnic().

Fixes: 7fe5668d2ea3 ("net/bnxt: support VLAN filter and strip")
Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_ethdev.c

index 1997783a7db07c5d08222861a4b7e0fa1d73ccee..ff92f999db90e7c791256a165b2d8edd77e73a49 100644 (file)
@@ -2531,6 +2531,10 @@ static int bnxt_free_one_vnic(struct bnxt *bp, uint16_t vnic_id)
        }
        bnxt_del_dflt_mac_filter(bp, vnic);
 
+       rc = bnxt_hwrm_vnic_ctx_free(bp, vnic);
+       if (rc)
+               return rc;
+
        rc = bnxt_hwrm_vnic_free(bp, vnic);
        if (rc)
                return rc;