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>
This commit is contained in:
committed by
Jeff Garzik
parent
819067916d
commit
a79abdc6ee
@@ -2056,9 +2056,6 @@ static struct sk_buff *sky2_receive(struct net_device *dev,
|
|||||||
if (!(status & GMR_FS_RX_OK))
|
if (!(status & GMR_FS_RX_OK))
|
||||||
goto resubmit;
|
goto resubmit;
|
||||||
|
|
||||||
if (length > dev->mtu + ETH_HLEN)
|
|
||||||
goto oversize;
|
|
||||||
|
|
||||||
if (length < copybreak)
|
if (length < copybreak)
|
||||||
skb = receive_copy(sky2, re, length);
|
skb = receive_copy(sky2, re, length);
|
||||||
else
|
else
|
||||||
@@ -2068,14 +2065,10 @@ resubmit:
|
|||||||
|
|
||||||
return skb;
|
return skb;
|
||||||
|
|
||||||
oversize:
|
|
||||||
++sky2->net_stats.rx_over_errors;
|
|
||||||
goto resubmit;
|
|
||||||
|
|
||||||
error:
|
error:
|
||||||
++sky2->net_stats.rx_errors;
|
++sky2->net_stats.rx_errors;
|
||||||
if (status & GMR_FS_RX_FF_OV) {
|
if (status & GMR_FS_RX_FF_OV) {
|
||||||
sky2->net_stats.rx_fifo_errors++;
|
sky2->net_stats.rx_over_errors++;
|
||||||
goto resubmit;
|
goto resubmit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user