patch 'net/gve: fix disabling interrupts on DQ' has been queued to stable release 24.11.4

Kevin Traynor ktraynor at redhat.com
Fri Oct 31 15:32:28 CET 2025


Hi,

FYI, your patch has been queued to stable release 24.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/05/25. 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/d6ef9b8798834764c517e7fccbdca0a0b53b8772

Thanks.

Kevin

---
>From d6ef9b8798834764c517e7fccbdca0a0b53b8772 Mon Sep 17 00:00:00 2001
From: Joshua Washington <joshwash at google.com>
Date: Mon, 4 Aug 2025 13:50:24 -0700
Subject: [PATCH] net/gve: fix disabling interrupts on DQ

[ upstream commit 8a6418e11a4d9e3554d592b1b3e3957fea8e7cee ]

When starting Rx and Tx queues in the DQ queue format, the driver was
erroneously writing GVE_IRQ_MASK to the IRQ doorbell. GQ and DQ have
different interrupt register layouts, so writing this bit is incorrect.
Update the register write to properly enable NO_INT_MODE for DQO.

Fixes: b044845bb015 ("net/gve: support queue start/stop")

Signed-off-by: Joshua Washington <joshwash at google.com>
Reviewed-by: Praveen Kaligineedi <pkaligineedi at google.com>
---
 drivers/net/gve/base/gve_desc_dqo.h | 4 ++++
 drivers/net/gve/gve_rx_dqo.c        | 4 +++-
 drivers/net/gve/gve_tx_dqo.c        | 4 +++-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/gve/base/gve_desc_dqo.h b/drivers/net/gve/base/gve_desc_dqo.h
index bb4a18d4d1..71d9d60bb9 100644
--- a/drivers/net/gve/base/gve_desc_dqo.h
+++ b/drivers/net/gve/base/gve_desc_dqo.h
@@ -249,3 +249,7 @@ GVE_CHECK_STRUCT_LEN(32, gve_rx_compl_desc_dqo);
 #define GVE_RX_BUF_THRESH_DQO 32
 
+/* GVE IRQ */
+#define GVE_NO_INT_MODE_DQO BIT(30)
+#define GVE_ITR_NO_UPDATE_DQO (3 << 3)
+
 #endif /* _GVE_DESC_DQO_H_ */
diff --git a/drivers/net/gve/gve_rx_dqo.c b/drivers/net/gve/gve_rx_dqo.c
index 285c6ddd61..0103add985 100644
--- a/drivers/net/gve/gve_rx_dqo.c
+++ b/drivers/net/gve/gve_rx_dqo.c
@@ -416,5 +416,7 @@ gve_rx_queue_start_dqo(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 	rxq->qrx_tail = &hw->db_bar2[rte_be_to_cpu_32(rxq->qres->db_index)];
 
-	rte_write32(rte_cpu_to_be_32(GVE_IRQ_MASK), rxq->ntfy_addr);
+	rte_write32(rte_cpu_to_le_32(GVE_NO_INT_MODE_DQO |
+				     GVE_ITR_NO_UPDATE_DQO),
+		    rxq->ntfy_addr);
 
 	ret = gve_rxq_mbufs_alloc_dqo(rxq);
diff --git a/drivers/net/gve/gve_tx_dqo.c b/drivers/net/gve/gve_tx_dqo.c
index 169c40d5b0..c36c215b94 100644
--- a/drivers/net/gve/gve_tx_dqo.c
+++ b/drivers/net/gve/gve_tx_dqo.c
@@ -532,5 +532,7 @@ gve_tx_queue_start_dqo(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 		&hw->cnt_array[rte_be_to_cpu_32(txq->qres->counter_index)];
 
-	rte_write32(rte_cpu_to_be_32(GVE_IRQ_MASK), txq->ntfy_addr);
+	rte_write32(rte_cpu_to_le_32(GVE_NO_INT_MODE_DQO |
+				     GVE_ITR_NO_UPDATE_DQO),
+		    txq->ntfy_addr);
 
 	dev->data->tx_queue_state[tx_queue_id] = RTE_ETH_QUEUE_STATE_STARTED;
-- 
2.51.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-10-31 13:53:53.061458556 +0000
+++ 0026-net-gve-fix-disabling-interrupts-on-DQ.patch	2025-10-31 13:53:52.052523418 +0000
@@ -1 +1 @@
-From 8a6418e11a4d9e3554d592b1b3e3957fea8e7cee Mon Sep 17 00:00:00 2001
+From d6ef9b8798834764c517e7fccbdca0a0b53b8772 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8a6418e11a4d9e3554d592b1b3e3957fea8e7cee ]
+
@@ -12 +13,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list