Skip to content

Commit 6321f5f

Browse files
josh8551021davem330
authored andcommitted
gve: clean XDP queues in gve_tx_stop_ring_gqi
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: 75eaae1 ("gve: Add XDP DROP and TX support for GQI-QPL format") Cc: [email protected] Signed-off-by: Joshua Washington <[email protected]> Signed-off-by: Praveen Kaligineedi <[email protected]> Reviewed-by: Praveen Kaligineedi <[email protected]> Reviewed-by: Willem de Bruijn <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent b6075c8 commit 6321f5f

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/net/ethernet/google/gve/gve_tx.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,10 @@ void gve_tx_stop_ring_gqi(struct gve_priv *priv, int idx)
206206
return;
207207

208208
gve_remove_napi(priv, ntfy_idx);
209-
gve_clean_tx_done(priv, tx, priv->tx_desc_cnt, false);
209+
if (tx->q_num < priv->tx_cfg.num_queues)
210+
gve_clean_tx_done(priv, tx, priv->tx_desc_cnt, false);
211+
else
212+
gve_clean_xdp_done(priv, tx, priv->tx_desc_cnt);
210213
netdev_tx_reset_queue(tx->netdev_txq);
211214
gve_tx_remove_from_block(priv, idx);
212215
}

0 commit comments

Comments
 (0)