net: systemport: Pad packet before inserting TSB
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 4 Jan 2017 00:34:49 +0000 (16:34 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Jan 2017 18:33:29 +0000 (13:33 -0500)
commit38e5a85562a6cd911fc26d951d576551a688574c
treea7413917257142a43be1d3c58cdef4e7e2112bdd
parentbb7da333d0a9f3bddc08f84187b7579a3f68fd24
net: systemport: Pad packet before inserting TSB

Inserting the TSB means adding an extra 8 bytes in front the of packet
that is going to be used as metadata information by the TDMA engine, but
stripped off, so it does not really help with the packet padding.

For some odd packet sizes that fall below the 60 bytes payload (e.g: ARP)
we can end-up padding them after the TSB insertion, thus making them 64
bytes, but with the TDMA stripping off the first 8 bytes, they could
still be smaller than 64 bytes which is required to ingress the switch.

Fix this by swapping the padding and TSB insertion, guaranteeing that
the packets have the right sizes.

Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bcmsysport.c