Commit 71749531 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Jeff Garzik
Browse files

sky2: check drop truncated packets



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: default avatarStephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent f4331a6d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2109,6 +2109,9 @@ static struct sk_buff *sky2_receive(struct net_device *dev,
	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
@@ -2118,6 +2121,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) {