On 2/25/2025 4:35 PM, Harshitha Ramamurthy wrote: > When a queue is stopped using the ndo queue API, before > destroying its page pool, the associated NAPI instance > needs to be unlinked to avoid warnings. > > Handle this by calling page_pool_disable_direct_recycling() > when stopping a queue. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: ebdfae0d377b ("gve: adopt page pool for DQ RDA mode") > Reviewed-by: Praveen Kaligineedi <pkaligineedi@xxxxxxxxxx> > Signed-off-by: Harshitha Ramamurthy <hramamurthy@xxxxxxxxxx> > --- Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx> > drivers/net/ethernet/google/gve/gve_rx_dqo.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c > index 8ac0047f1ada..f0674a443567 100644 > --- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c > +++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c > @@ -109,10 +109,12 @@ static void gve_rx_reset_ring_dqo(struct gve_priv *priv, int idx) > void gve_rx_stop_ring_dqo(struct gve_priv *priv, int idx) > { > int ntfy_idx = gve_rx_idx_to_ntfy(priv, idx); > + struct gve_rx_ring *rx = &priv->rx[idx]; > > if (!gve_rx_was_added_to_block(priv, idx)) > return; > > + page_pool_disable_direct_recycling(rx->dqo.page_pool); > gve_remove_napi(priv, ntfy_idx); > gve_rx_remove_from_block(priv, idx); > gve_rx_reset_ring_dqo(priv, idx);