aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2009-06-08 19:27:13 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-06-08 19:27:13 +0100
commit7698fdedcfa3cab3dd40c9b685590b23be02e267 (patch)
tree207ddae0f963174356b1a9de7fff8e48a9c1e9c1 /drivers/net/e1000
parent2d8d24935d372175786ebefa8a2de8680831b67f (diff)
parentae5c8c83735f5fcb09b380944e4854a383006998 (diff)
downloadkernel_goldelico_gta04-7698fdedcfa3cab3dd40c9b685590b23be02e267.zip
kernel_goldelico_gta04-7698fdedcfa3cab3dd40c9b685590b23be02e267.tar.gz
kernel_goldelico_gta04-7698fdedcfa3cab3dd40c9b685590b23be02e267.tar.bz2
Merge branch 'for-rmk' of git://git.marvell.com/orion into devel
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r--drivers/net/e1000/e1000_main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index b1419e2..fffb006 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -4027,8 +4027,9 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
PCI_DMA_FROMDEVICE);
length = le16_to_cpu(rx_desc->length);
-
- if (unlikely(!(status & E1000_RXD_STAT_EOP))) {
+ /* !EOP means multiple descriptors were used to store a single
+ * packet, also make sure the frame isn't just CRC only */
+ if (unlikely(!(status & E1000_RXD_STAT_EOP) || (length <= 4))) {
/* All receives must fit into a single buffer */
E1000_DBG("%s: Receive packet consumed multiple"
" buffers\n", netdev->name);