e1000: FIX: move length adjustment due to crc stripping disabled.
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Tue, 24 Oct 2006 21:46:06 +0000 (14:46 -0700)
committerAuke Kok <juke-jan.h.kok@intel.com>
Tue, 24 Oct 2006 21:46:06 +0000 (14:46 -0700)
Move the length (rx_bytes counter) adjustment of 4 bytes down to after the
TBI_ACCEPT workaround.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
drivers/net/e1000/e1000_main.c

index e75909ee6d852800520ca2357dd164e3afb4a34b..66ed920df406fab5747d45cd5aa50aa25b9ba3b1 100644 (file)
@@ -3786,9 +3786,6 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
 
                length = le16_to_cpu(rx_desc->length);
 
-               /* adjust length to remove Ethernet CRC */
-               length -= 4;
-
                if (unlikely(!(status & E1000_RXD_STAT_EOP))) {
                        /* All receives must fit into a single buffer */
                        E1000_DBG("%s: Receive packet consumed multiple"
@@ -3816,6 +3813,10 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
                        }
                }
 
+               /* adjust length to remove Ethernet CRC, this must be
+                * done after the TBI_ACCEPT workaround above */
+               length -= 4;
+
                /* code added for copybreak, this should improve
                 * performance for small packets with large amounts
                 * of reassembly being done in the stack */