On Tue, Feb 02, 2021 at 07:34:43PM +0200, Camelia Groza wrote:
> The 256 byte data alignment is required for preventing DMA transaction
> splits when crossing 4K page boundaries. Since XDP deals only with page
> sized buffers or less, this restriction isn't needed. Instead, the data
> only needs to be aligned to 64 bytes to prevent DMA transaction splits.
>
> These lessened restrictions can increase performance by widening the pool
> of permitted data alignments and preventing unnecessary realignments.
>
> Fixes: ae680bcbd06a ("dpaa_eth: implement the A050385 erratum workaround for
> XDP")
> Signed-off-by: Camelia Groza <[email protected]>
Acked-by: Maciej Fijalkowski <[email protected]>
> ---
> drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> index e1d041c35ad9..78dfa05f6d55 100644
> --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> @@ -2192,7 +2192,7 @@ static int dpaa_a050385_wa_xdpf(struct dpaa_priv *priv,
> * byte frame headroom. If the XDP program uses all of it, copy the
> * data to a new buffer and make room for storing the backpointer.
> */
> - if (PTR_IS_ALIGNED(xdpf->data, DPAA_A050385_ALIGN) &&
> + if (PTR_IS_ALIGNED(xdpf->data, DPAA_FD_DATA_ALIGNMENT) &&
> xdpf->headroom >= priv->tx_headroom) {
> xdpf->headroom = priv->tx_headroom;
> return 0;
> --
> 2.17.1
>