patch 'net/gve: restrict max ring size in GQ QPL to 2K' has been queued to stable release 25.11.3
Kevin Traynor
ktraynor at redhat.com
Thu Jul 30 11:16:29 CEST 2026
Hi,
FYI, your patch has been queued to stable release 25.11.3
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/04/26. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/f742be580b8c098c34f12a78aed5d8982d89d830
Thanks.
Kevin
---
>From f742be580b8c098c34f12a78aed5d8982d89d830 Mon Sep 17 00:00:00 2001
From: Joshua Washington <joshwash at google.com>
Date: Wed, 8 Jul 2026 21:07:37 -0700
Subject: [PATCH] net/gve: restrict max ring size in GQ QPL to 2K
[ upstream commit 3040e4acff643ee86ac0a504516cfe15ed866823 ]
The GQ QPL queue format has a maximum supported ring size of 2k.
However, it is possible in some cases for the device to pass a larger
ring size as the max ring size. Restrict the ring size in the driver to
ensure that rings with invalid queue depths are not created.
Fixes: cde01d164f8f ("net/gve: support modifying ring size in GQ format")
Signed-off-by: Joshua Washington <joshwash at google.com>
Reviewed-by: Jasper Tran O'Leary <jtranoleary at google.com>
---
drivers/net/gve/base/gve_adminq.c | 11 ++++++++---
drivers/net/gve/gve_ethdev.h | 1 +
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/net/gve/base/gve_adminq.c b/drivers/net/gve/base/gve_adminq.c
index b5b050d6d1..31e3dc1470 100644
--- a/drivers/net/gve/base/gve_adminq.c
+++ b/drivers/net/gve/base/gve_adminq.c
@@ -765,4 +765,7 @@ gve_set_max_desc_cnt(struct gve_priv *priv,
const struct gve_device_option_modify_ring *modify_ring)
{
+ priv->max_rx_desc_cnt = be16_to_cpu(modify_ring->max_ring_size.rx);
+ priv->max_tx_desc_cnt = be16_to_cpu(modify_ring->max_ring_size.tx);
+
if (priv->queue_format == GVE_DQO_RDA_FORMAT) {
PMD_DRV_LOG(DEBUG, "Overriding max ring size from device for DQ "
@@ -770,8 +773,10 @@ gve_set_max_desc_cnt(struct gve_priv *priv,
priv->max_rx_desc_cnt = GVE_MAX_QUEUE_SIZE_DQO;
priv->max_tx_desc_cnt = GVE_MAX_QUEUE_SIZE_DQO;
- return;
+ } else if (priv->queue_format == GVE_GQI_QPL_FORMAT) {
+ priv->max_rx_desc_cnt = RTE_MIN(priv->max_rx_desc_cnt,
+ GVE_MAX_RING_SIZE_GQ_QPL);
+ priv->max_tx_desc_cnt = RTE_MIN(priv->max_tx_desc_cnt,
+ GVE_MAX_RING_SIZE_GQ_QPL);
}
- priv->max_rx_desc_cnt = be16_to_cpu(modify_ring->max_ring_size.rx);
- priv->max_tx_desc_cnt = be16_to_cpu(modify_ring->max_ring_size.tx);
}
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index f7cc781640..96cb1d5d5e 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -17,4 +17,5 @@
#define GVE_DEFAULT_MAX_RING_SIZE 1024
+#define GVE_MAX_RING_SIZE_GQ_QPL 2048
#define GVE_DEFAULT_MIN_RX_RING_SIZE 512
#define GVE_DEFAULT_MIN_TX_RING_SIZE 256
--
2.55.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-07-30 10:16:02.932502028 +0100
+++ 0050-net-gve-restrict-max-ring-size-in-GQ-QPL-to-2K.patch 2026-07-30 10:16:01.484751279 +0100
@@ -1 +1 @@
-From 3040e4acff643ee86ac0a504516cfe15ed866823 Mon Sep 17 00:00:00 2001
+From f742be580b8c098c34f12a78aed5d8982d89d830 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3040e4acff643ee86ac0a504516cfe15ed866823 ]
+
@@ -12 +13,0 @@
-Cc: stable at dpdk.org
@@ -22 +23 @@
-index 2b25c7f390..89bf669c24 100644
+index b5b050d6d1..31e3dc1470 100644
@@ -25 +26 @@
-@@ -947,4 +947,7 @@ gve_set_max_desc_cnt(struct gve_priv *priv,
+@@ -765,4 +765,7 @@ gve_set_max_desc_cnt(struct gve_priv *priv,
@@ -33 +34 @@
-@@ -952,8 +955,10 @@ gve_set_max_desc_cnt(struct gve_priv *priv,
+@@ -770,8 +773,10 @@ gve_set_max_desc_cnt(struct gve_priv *priv,
@@ -48 +49 @@
-index 4a7e5ecdf3..c9a176ff17 100644
+index f7cc781640..96cb1d5d5e 100644
@@ -51 +52 @@
-@@ -22,4 +22,5 @@
+@@ -17,4 +17,5 @@
More information about the stable
mailing list