stmmac: fix automatic PAD/FCS stripping
authorGiuseppe CAVALLARO <peppe.cavallaro@st.com>
Tue, 27 Jul 2010 00:09:47 +0000 (00:09 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Jul 2010 03:43:50 +0000 (20:43 -0700)
commit3eeb29972b1139f733f7269def527900729f4cc7
tree7189feaee380e0921c65935879e65030b01d9560
parentca09c9760101b607cd2282c45b342655e26fa683
stmmac: fix automatic PAD/FCS stripping

For Simple Ethernet frames (802.2 and 802.3) the GMAC Core
never strips pad and fcs. This means the ACS has no effect
on IPv4/6 frames.
The FL bits, in the RDES0, include the FCS so the driver
has to remove it in SW.
For 802.3 frame format with LLC or LLC-SNAP, when set the ACS
bit, the HW strips both PAD and FCS.
The FL bits, in the RDES0, actually represents the frame length
already stripped.
This patch fixes this logic within the device driver that
erroneously removed 4byte from 802.3 frames already stripped
corrupting the payload.

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/stmmac/common.h
drivers/net/stmmac/dwmac1000.h
drivers/net/stmmac/enh_desc.c
drivers/net/stmmac/stmmac_main.c