• Doug Berger's avatar
    net: bcmgenet: use hardware padding of runt frames · 20d1f2d1
    Doug Berger authored
    When commit 474ea9ca ("net: bcmgenet: correctly pad short
    packets") added the call to skb_padto() it should have been
    located before the nr_frags parameter was read since that value
    could be changed when padding packets with lengths between 55
    and 59 bytes (inclusive).
    
    The use of a stale nr_frags value can cause corruption of the
    pad data when tx-scatter-gather is enabled. This corruption of
    the pad can cause invalid checksum computation when hardware
    offload of tx-checksum is also enabled.
    
    Since the original reason for the padding was corrected by
    commit 7dd39913 ("net: bcmgenet: fix skb_len in
    bcmgenet_xmit_single()") we can remove the software padding all
    together and make use of hardware padding of short frames as
    long as the hardware also always appends the FCS value to the
    frame.
    
    Fixes: 474ea9ca ("net: bcmgenet: correctly pad short packets")
    Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
    Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    20d1f2d1
bcmgenet.c 113 KB