sky2: receive error handling improvements
authorStephen Hemminger <shemminger@linux-foundation.org>
Fri, 16 Feb 2007 00:40:34 +0000 (16:40 -0800)
committerJeff Garzik <jeff@garzik.org>
Sat, 17 Feb 2007 20:30:47 +0000 (15:30 -0500)
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>
drivers/net/sky2.c

index fafa4021bb8ad5cba228b538dc5b50201a46a3ab..c058117d2a63f3a77e60f139ce84d06a4294ecc3 100644 (file)
@@ -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;
        }