[patch 06/20] sky2: check drop truncated packets
From: Greg KH <gregkh@suse.de>
Date: 2007-08-21 06:54:27
-stable review patch. If anyone has any objections, please let us know. ------------------ From: Stephen Hemminger <redacted> Backport of commit 71749531f2d1954137a1a77422ef4ff29eb102dd If packet larger than MTU is received, the driver uses hardware to truncate the packet. Use the status registers to catch/drop them. Signed-off-by: Stephen Hemminger <redacted> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/net/sky2.c | 8 ++++++++ 1 file changed, 8 insertions(+)
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c@@ -2065,6 +2065,9 @@ static struct sk_buff *sky2_receive(stru if (!(status & GMR_FS_RX_OK)) goto resubmit; + if (status >> 16 != length) + goto len_mismatch; + if (length < copybreak) skb = receive_copy(sky2, re, length); else
@@ -2074,6 +2077,11 @@ resubmit: return skb; +len_mismatch: + /* Truncation of overlength packets + causes PHY length to not match MAC length */ + ++sky2->net_stats.rx_length_errors; + error: ++sky2->net_stats.rx_errors; if (status & GMR_FS_RX_FF_OV) {
--