On Sep 28, Toke wrote: > Lorenzo Bianconi writes: > > > mvneta_swbm_add_rx_fragment() sets XDP_FLAGS_FRAGS_PF_MEMALLOC on the > > xdp_buff when a fragment page is a pfmemalloc one (page under memory > > pressure). The xdp_buff is reused for the next frame, but only the > > XDP_FLAGS_HAS_FRAGS bit was cleared at frame start, so the pfmemalloc > > bit leaked from one frame into the following ones. mvneta_swbm_build_skb() > > propagates the flag to skb->pfmemalloc through xdp_update_skb_frags_info(), > > so the skb of a subsequent fragmented frame could be wrongly marked as > > pfmemalloc even if none of its pages are under pressure. > > > > Clear all the xdp_buff flags in mvneta_swbm_rx_frame(), which is invoked > > for each new frame, instead of just the XDP_FLAGS_HAS_FRAGS bit. > > > > Fixes: ed7a58cb40bd ("net: marvell: rely on xdp_update_skb_shared_info utility routine") > > Reviewed-by: Simon Horman > > Signed-off-by: Lorenzo Bianconi > > --- > > Changes in v3: > > - Rename xdp_buff_clear_flags() in xdp_reinit_buf(). > > - Link to v2: https://lore.kernel.org/r/20260923-mvneta-xdp-clear-frag-fix-v2-1-298693a7ea6b@oss.qualcomm.com > > > > Changes in v2: > > - Introduce xdp_buff_clear_flags() utility routine. > > - Link to v1: https://lore.kernel.org/r/20260920-mvneta-xdp-clear-frag-fix-v1-1-d7efadecf959@oss.qualcomm.com > > --- > > drivers/net/ethernet/marvell/mvneta.c | 2 +- > > include/net/xdp.h | 5 +++++ > > 2 files changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c > > index c2b1098d8d1d..485af7e395ae 100644 > > --- a/drivers/net/ethernet/marvell/mvneta.c > > +++ b/drivers/net/ethernet/marvell/mvneta.c > > @@ -2340,7 +2340,7 @@ mvneta_swbm_rx_frame(struct mvneta_port *pp, > > > > /* Prefetch header */ > > prefetch(data); > > - xdp_buff_clear_frags_flag(xdp); > > + xdp_reinit_buf(xdp); > > nit: we spell buff with two f's everywhere else, so seems a bit odd to > have only one here... ack, I will fix it in v4. Regards, Lorenzo > > -Toke >