• Zefir Kurtisi's avatar
    gianfar: prevent fragmentation in DSA environments · b323431b
    Zefir Kurtisi authored
    The eTSEC register MRBLR defines the maximum space in
    the RX buffers and is set to 1536 by gianfar. This
    reasonably covers the common use case where the MTU
    is kept at default 1500. In that case, the largest
    Ethernet frame size of 1518 plus an optional
    GMAC_FCB_LEN of 8, and an additional padding of 8
    to handle FSL_GIANFAR_DEV_HAS_TIMER totals to 1534
    and nicely fit within the chosen MRBLR.
    
    Alas, if the eTSEC is attached to a DSA enabled switch,
    the (E)DSA header extension (4 or 8 bytes) causes every
    maximum sized frame to be fragmented by the hardware.
    
    This patch increases the maximum RX buffer size by 8
    and rounds up to the next multiple of 64, which the
    hardware's defines as RX buffer granularity.
    Signed-off-by: default avatarZefir Kurtisi <zefir.kurtisi@neratec.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b323431b
gianfar.h 43.2 KB