From 670ab553841b2f2bbf59667465855b0869eea86b Mon Sep 17 00:00:00 2001 From: Ajit Khaparde Date: Mon, 15 Mar 2021 22:42:40 -0700 Subject: [PATCH] net/bnxt: fix RSS context cleanup 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 --- drivers/net/bnxt/bnxt_ethdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 1997783a7d..ff92f999db 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -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; -- 2.20.1