Skip to content

Commit 4543933

Browse files
gve: clean XDP queues in gve_tx_stop_ring_gqi
jira KERNEL-1218 commit-author Joshua Washington <joshwash@google.com> commit 6321f5f 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: stable@vger.kernel.org Signed-off-by: Joshua Washington <joshwash@google.com> Signed-off-by: Praveen Kaligineedi <pkaligineedi@google.com> Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 6321f5f) Signed-off-by: Shreeya Patel <spatel@ciq.com>
1 parent 54ffe64 commit 4543933

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

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)