From patchwork Thu Mar 18 00:47:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 89416 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 182E8A0561; Thu, 18 Mar 2021 01:47:38 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EFAA9140FAB; Thu, 18 Mar 2021 01:47:37 +0100 (CET) Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by mails.dpdk.org (Postfix) with ESMTP id AB74340683 for ; Thu, 18 Mar 2021 01:47:36 +0100 (CET) Received: by mail-pg1-f169.google.com with SMTP id v2so318535pgk.11 for ; Wed, 17 Mar 2021 17:47:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:mime-version; bh=iw5f2rFoNaw/FP+miBe/rkzOamo27UkAZar0GoC7n28=; b=cJQ2QMvzPQe5fR65TPbbNnZ4VBs8SqnpNpJgQ/MBe/WqrHHZ+Bx5MOHAorM3J4oqpB tahslsNC/8W2jK4Z9EHf2oa9/ORCrq6+r7d8f7TXbFt3r42g+cDjjAvLza0jNrhSPfOh GtwDU1uzSApj/lf9E7egdj8n/oJdgvKfgYRlA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version; bh=iw5f2rFoNaw/FP+miBe/rkzOamo27UkAZar0GoC7n28=; b=GdViVPt9+j6xVpXg/yuOP97hTQkbsdIjToZSLyNa/wK6M2IfS28a0lqdXNmZAYDkg7 G4pXIYfvSrwVQduRtYeqfnR2CFikuWPXU5k/Jmlg5SGmIymjyhVTZgfZgeIR/O3Y5oS4 1wpgaKsT80lovmJvdw0dpQrp9a0OV/XxbvDZiUd8YC99tm69OvFWJEqmh6ZLEpB/0pfS 0W7LZw4mOJWWkwZnnMROUnFOcfv8Ox/pw/K53xY1x9wsR6K4jKEIpvmyMzXqssvLNm43 oRRMIbhcmWt1QY3a7JKmoJzrdT/I4n+fIei9IwnjWByxHwIWsWdg20JUX6KbHDgL11UV bmpg== X-Gm-Message-State: AOAM532JuUGO05+J0MFMN4mHQsKPesuw2hYiopCukOuY2LCRJu0ZObuV 69EpD8dppBh5MoP/tkTiiGoFcTa6mhH19SSrQOlAawJpG4mrGtasEPmeFHd/t07g27cJVEO/FKs v9Xzhj4bupQIb3vI7fakI3JGobeVyrtcLd+IiQezOWxSTLh5LkUkkY275EnuENHEqTg== X-Google-Smtp-Source: ABdhPJy/jHmoqhb9+hR56sdPQdRFGDlf8k8MUZRj7+96TC2dUK71FwLiNKI/JqD0Z1k3/URh5RfLVA== X-Received: by 2002:a63:1d01:: with SMTP id d1mr4602790pgd.361.1616028455295; Wed, 17 Mar 2021 17:47:35 -0700 (PDT) Received: from localhost.localdomain ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f11sm217846pga.34.2021.03.17.17.47.34 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Mar 2021 17:47:34 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: stable@dpdk.org Date: Wed, 17 Mar 2021 17:47:30 -0700 Message-Id: <20210318004730.24360-1-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-dev] [PATCH] net/bnxt: fix RSS context cleanup X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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;