gve: clean XDP queues in gve_tx_stop_ring_gqi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Joshua Washington <joshwash@xxxxxxxxxx>

commit 6321f5fb70d502d95de8a212a7b484c297ec9644 upstream.

When stopping XDP TX rings, the XDP clean function needs to be called to
clean out the entire queue, similar to what happens in the normal TX
queue case. Otherwise, the FIFO won't be cleared correctly, and
xsk_tx_completed won't be reported.

Fixes: 75eaae158b1b ("gve: Add XDP DROP and TX support for GQI-QPL format")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Joshua Washington <joshwash@xxxxxxxxxx>
Signed-off-by: Praveen Kaligineedi <pkaligineedi@xxxxxxxxxx>
Reviewed-by: Praveen Kaligineedi <pkaligineedi@xxxxxxxxxx>
Reviewed-by: Willem de Bruijn <willemb@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/net/ethernet/google/gve/gve_tx.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/net/ethernet/google/gve/gve_tx.c
+++ b/drivers/net/ethernet/google/gve/gve_tx.c
@@ -206,7 +206,10 @@ void gve_tx_stop_ring_gqi(struct gve_pri
 		return;
 
 	gve_remove_napi(priv, ntfy_idx);
-	gve_clean_tx_done(priv, tx, priv->tx_desc_cnt, false);
+	if (tx->q_num < priv->tx_cfg.num_queues)
+		gve_clean_tx_done(priv, tx, priv->tx_desc_cnt, false);
+	else
+		gve_clean_xdp_done(priv, tx, priv->tx_desc_cnt);
 	netdev_tx_reset_queue(tx->netdev_txq);
 	gve_tx_remove_from_block(priv, idx);
 }


Patches currently in stable-queue which might be from joshwash@xxxxxxxxxx are

queue-6.12/gve-process-xsk-tx-descriptors-as-part-of-rx-napi.patch
queue-6.12/gve-trigger-rx-napi-instead-of-tx-napi-in-gve_xsk_wakeup.patch
queue-6.12/gve-fix-xdp-allocation-path-in-edge-cases.patch
queue-6.12/gve-guard-xsk-operations-on-the-existence-of-queues.patch
queue-6.12/gve-guard-xdp-xmit-ndo-on-existence-of-xdp-queues.patch
queue-6.12/gve-clean-xdp-queues-in-gve_tx_stop_ring_gqi.patch




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux