summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-02-15 16:40:34 -0800
committerJeff Garzik <jeff@garzik.org>2007-02-17 15:30:47 -0500
commita79abdc6eeca745b2af04fc03f9a04da0d294094 (patch)
treeb3615973c6f8e39c8e8b669c8baac24c973d8541 /drivers
parent819067916d785cac0369b8d6e187b4a83fd17785 (diff)
downloadlwn-a79abdc6eeca745b2af04fc03f9a04da0d294094.tar.gz
lwn-a79abdc6eeca745b2af04fc03f9a04da0d294094.zip
sky2: receive error handling improvements
Don't drop oversize frame it might be a VLAN (untagged). Use different counter for fifo overrun vs fifo error. Print error on fifo overrrun. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/sky2.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index fafa4021bb8a..c058117d2a63 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2056,9 +2056,6 @@ static struct sk_buff *sky2_receive(struct net_device *dev,
if (!(status & GMR_FS_RX_OK))
goto resubmit;
- if (length > dev->mtu + ETH_HLEN)
- goto oversize;
-
if (length < copybreak)
skb = receive_copy(sky2, re, length);
else
@@ -2068,14 +2065,10 @@ resubmit:
return skb;
-oversize:
- ++sky2->net_stats.rx_over_errors;
- goto resubmit;
-
error:
++sky2->net_stats.rx_errors;
if (status & GMR_FS_RX_FF_OV) {
- sky2->net_stats.rx_fifo_errors++;
+ sky2->net_stats.rx_over_errors++;
goto resubmit;
}