diff options
Diffstat (limited to 'drivers/net/stmmac/stmmac_main.c')
-rw-r--r-- | drivers/net/stmmac/stmmac_main.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c index 1083334ccd21..bbb7951b9c4c 100644 --- a/drivers/net/stmmac/stmmac_main.c +++ b/drivers/net/stmmac/stmmac_main.c | |||
@@ -1216,9 +1216,13 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit) | |||
1216 | priv->dev->stats.rx_errors++; | 1216 | priv->dev->stats.rx_errors++; |
1217 | else { | 1217 | else { |
1218 | struct sk_buff *skb; | 1218 | struct sk_buff *skb; |
1219 | /* Length should omit the CRC */ | 1219 | int frame_len; |
1220 | int frame_len = priv->hw->desc->get_rx_frame_len(p) - 4; | ||
1221 | 1220 | ||
1221 | frame_len = priv->hw->desc->get_rx_frame_len(p); | ||
1222 | /* ACS is set; GMAC core strips PAD/FCS for IEEE 802.3 | ||
1223 | * Type frames (LLC/LLC-SNAP) */ | ||
1224 | if (unlikely(status != llc_snap)) | ||
1225 | frame_len -= ETH_FCS_LEN; | ||
1222 | #ifdef STMMAC_RX_DEBUG | 1226 | #ifdef STMMAC_RX_DEBUG |
1223 | if (frame_len > ETH_FRAME_LEN) | 1227 | if (frame_len > ETH_FRAME_LEN) |
1224 | pr_debug("\tRX frame size %d, COE status: %d\n", | 1228 | pr_debug("\tRX frame size %d, COE status: %d\n", |