• Ioana Ciornei's avatar
    dpaa2-eth: increase the needed headroom to account for alignment · f422abe3
    Ioana Ciornei authored
    Increase the needed headroom to account for a 64 byte alignment
    restriction which, with this patch, we make mandatory on the Tx path.
    The case in which the amount of headroom needed is not available is
    already handled by the driver which instead sends a S/G frame with the
    first buffer only holding the SW and HW annotation areas.
    
    Without this patch, we can empirically see data corruption happening
    between Tx and Tx confirmation which sometimes leads to the SW
    annotation area being overwritten.
    
    Since this is an old IP where the hardware team cannot help to
    understand the underlying behavior, we make the Tx alignment mandatory
    for all frames to avoid the crash on Tx conf. Also, remove the comment
    that suggested that this is just an optimization.
    
    This patch also sets the needed_headroom net device field to the usual
    value that the driver would need on the Tx path:
    	- 64 bytes for the software annotation area
    	- 64 bytes to account for a 64 byte aligned buffer address
    
    Fixes: 6e2387e8 ("staging: fsl-dpaa2/eth: Add Freescale DPAA2 Ethernet driver")
    Closes: https://lore.kernel.org/netdev/aa784d0c-85eb-4e5d-968b-c8f74fa86be6@gin.de/Signed-off-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f422abe3
dpaa2-eth.h 23.6 KB