• Lendacky, Thomas's avatar
    amd-xgbe: Fix jumbo MTU processing on newer hardware · 622c36f1
    Lendacky, Thomas authored
    Newer hardware does not provide a cumulative payload length when multiple
    descriptors are needed to handle the data. Once the MTU increases beyond
    the size that can be handled by a single descriptor, the SKB does not get
    built properly by the driver.
    
    The driver will now calculate the size of the data buffers used by the
    hardware.  The first buffer of the first descriptor is for packet headers
    or packet headers and data when the headers can't be split. Subsequent
    descriptors in a multi-descriptor chain will not use the first buffer. The
    second buffer is used by all the descriptors in the chain for payload data.
    Based on whether the driver is processing the first, intermediate, or last
    descriptor it can calculate the buffer usage and build the SKB properly.
    
    Tested and verified on both old and new hardware.
    Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    622c36f1
xgbe-drv.c 64.6 KB