patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH] net/gve: properly disable interrupts on DQ
@ 2025-08-04 20:50 Joshua Washington
  0 siblings, 0 replies; only message in thread
From: Joshua Washington @ 2025-08-04 20:50 UTC (permalink / raw)
  To: Jeroen de Borst, Joshua Washington, Junfeng Guo
  Cc: dev, stable, Praveen Kaligineedi

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")
Cc: stable@dpdk.org

Signed-off-by: Joshua Washington <joshwash@google.com>
Reviewed-by: Praveen Kaligineedi <pkaligineedi@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
@@ -248,4 +248,8 @@ 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
@@ -415,7 +415,9 @@ 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);
 	if (ret != 0) {
diff --git a/drivers/net/gve/gve_tx_dqo.c b/drivers/net/gve/gve_tx_dqo.c
index 6984f92443..0a16b6a52d 100644
--- a/drivers/net/gve/gve_tx_dqo.c
+++ b/drivers/net/gve/gve_tx_dqo.c
@@ -415,7 +415,9 @@ gve_tx_queue_start_dqo(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 	txq->qtx_head =
 		&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.50.1.565.gc32cd1483b-goog


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-08-04 20:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-04 20:50 [PATCH] net/gve: properly disable interrupts on DQ Joshua Washington

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).