Re: [PATCH net v1] net: stmmac: Apply new page pool parameters when SPH is enabled

From: Ido Schimmel
Date: Mon Feb 10 2025 - 01:55:30 EST


On Fri, Feb 07, 2025 at 04:56:39PM +0800, Furong Xu wrote:
> Commit df542f669307 ("net: stmmac: Switch to zero-copy in
> non-XDP RX path") makes DMA write received frame into buffer at offset
> of NET_SKB_PAD and sets page pool parameters to sync from offset of
> NET_SKB_PAD. But when Header Payload Split is enabled, the header is
> written at offset of NET_SKB_PAD, while the payload is written at
> offset of zero. Uncorrect offset parameter for the payload breaks dma
> coherence [1] since both CPU and DMA touch the page buffer from offset
> of zero which is not handled by the page pool sync parameter.
>
> And in case the DMA cannot split the received frame, for example,
> a large L2 frame, pp_params.max_len should grow to match the tail
> of entire frame.
>
> [1] https://lore.kernel.org/netdev/d465f277-bac7-439f-be1d-9a47dfe2d951@xxxxxxxxxx/
>
> Reported-by: Jon Hunter <jonathanh@xxxxxxxxxx>
> Reported-by: Brad Griffis <bgriffis@xxxxxxxxxx>
> Suggested-by: Ido Schimmel <idosch@xxxxxxxxxx>
> Fixes: df542f669307 ("net: stmmac: Switch to zero-copy in non-XDP RX path")
> Signed-off-by: Furong Xu <0x1207@xxxxxxxxx>

Reviewed-by: Ido Schimmel <idosch@xxxxxxxxxx>