All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Chan <michael.chan@broadcom.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, gospo@broadcom.com,
	Pavan Chebbi <pavan.chebbi@broadcom.com>
Subject: [PATCH net-next 01/13] bnxt_en: Fix trimming of P5 RX and TX rings
Date: Mon, 11 Dec 2023 16:51:10 -0800	[thread overview]
Message-ID: <20231212005122.2401-2-michael.chan@broadcom.com> (raw)
In-Reply-To: <20231212005122.2401-1-michael.chan@broadcom.com>

[-- Attachment #1: Type: text/plain, Size: 2175 bytes --]

The recent commit to trim the RX and TX rings on P5 chips by assigning
each with max CP rings divided by 2 is not correct.  Max CP rings
divided by 2 may be bigger than the original RX or TX and would
lead to failure.  In other words, we may be checking for increased
RX/TX rings than required and it may fail.

Fix it by calling __bnxt_trim_rings() instead that would properly
trim RX and TX without the possibility of increasing their values.

Fixes: f5b29c6afe36 ("bnxt_en: Add helper to get the number of CP rings required for TX rings")
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 92a54113f872..7afbbc71f92f 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -6489,6 +6489,8 @@ static void bnxt_hwrm_ring_free(struct bnxt *bp, bool close_path)
 	}
 }
 
+static int __bnxt_trim_rings(struct bnxt *bp, int *rx, int *tx, int max,
+			     bool shared);
 static int bnxt_trim_rings(struct bnxt *bp, int *rx, int *tx, int max,
 			   bool shared);
 
@@ -6532,8 +6534,9 @@ static int bnxt_hwrm_get_rings(struct bnxt *bp)
 			if (bp->flags & BNXT_FLAG_AGG_RINGS)
 				rx >>= 1;
 			if (cp < (rx + tx)) {
-				rx = cp / 2;
-				tx = rx;
+				rc = __bnxt_trim_rings(bp, &rx, &tx, cp, false);
+				if (rc)
+					return rc;
 				if (bp->flags & BNXT_FLAG_AGG_RINGS)
 					rx <<= 1;
 				hw_resc->resv_rx_rings = rx;
@@ -13885,9 +13888,12 @@ static void _bnxt_get_max_rings(struct bnxt *bp, int *max_rx, int *max_tx,
 	if (bp->flags & BNXT_FLAG_AGG_RINGS)
 		*max_rx >>= 1;
 	if (bp->flags & BNXT_FLAG_CHIP_P5_PLUS) {
-		if (*max_cp < (*max_rx + *max_tx)) {
-			*max_rx = *max_cp / 2;
-			*max_tx = *max_rx;
+		int rc;
+
+		rc = __bnxt_trim_rings(bp, max_rx, max_tx, *max_cp, false);
+		if (rc) {
+			*max_rx = 0;
+			*max_tx = 0;
 		}
 		/* On P5 chips, max_cp output param should be available NQs */
 		*max_cp = max_irq;
-- 
2.30.1


[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4209 bytes --]

  reply	other threads:[~2023-12-12  0:51 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-12  0:51 [PATCH net-next 00/13] bnxt_en: Update for net-next Michael Chan
2023-12-12  0:51 ` Michael Chan [this message]
2023-12-12  0:51 ` [PATCH net-next 02/13] bnxt_en: Fix AGG ring check logic in bnxt_check_rings() Michael Chan
2023-12-12  0:51 ` [PATCH net-next 03/13] bnxt_en: Fix TX ring indexing logic Michael Chan
2023-12-12  0:51 ` [PATCH net-next 04/13] bnxt_en: Prevent TX timeout with a very small TX ring Michael Chan
2023-12-12  0:51 ` [PATCH net-next 05/13] bnxt_en: Support TX coalesced completion on 5760X chips Michael Chan
2023-12-12  0:51 ` [PATCH net-next 06/13] bnxt_en: Allocate extra QP backing store memory when RoCE FW reports it Michael Chan
2023-12-12  0:51 ` [PATCH net-next 07/13] bnxt_en: Use proper TUNNEL_DST_PORT_ALLOC* commands Michael Chan
2023-12-12  0:51 ` [PATCH net-next 08/13] bnxt_en: Add support for VXLAN GPE Michael Chan
2023-12-12  0:51 ` [PATCH net-next 09/13] bnxt_en: Configure UDP tunnel TPA Michael Chan
2023-12-12  0:51 ` [PATCH net-next 10/13] bnxt_en: add rx_filter_miss extended stats Michael Chan
2023-12-12  0:51 ` [PATCH net-next 11/13] bnxt_en: Add support for UDP GSO on 5760X chips Michael Chan
2023-12-12  0:51 ` [PATCH net-next 12/13] bnxt_en: Skip nic close/open when configuring tstamp filters Michael Chan
2023-12-12  0:51 ` [PATCH net-next 13/13] bnxt_en: Make PTP TX timestamp HWRM query silent Michael Chan
2024-01-24 10:18   ` Breno Leitao
2024-01-25  3:35     ` Pavan Chebbi
2024-01-25  4:47       ` Michael Chan
2024-01-25  9:52         ` Breno Leitao
2024-01-25  9:51       ` Breno Leitao
2023-12-13  0:10 ` [PATCH net-next 00/13] bnxt_en: Update for net-next patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231212005122.2401-2-michael.chan@broadcom.com \
    --to=michael.chan@broadcom.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gospo@broadcom.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pavan.chebbi@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.