aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e
diff options
context:
space:
mode:
authorAuke Kok <auke-jan.h.kok@intel.com>2008-02-12 18:20:24 -0500
committerJeff Garzik <jeff@garzik.org>2008-02-15 10:52:01 -0500
commit5918bd88effd0233a048983570ec5803f5f753dc (patch)
treeff20d730ba7ec9586fb19f100ab708c227505da4 /drivers/net/e1000e
parentfdb26629f31b898c2c4a4127c7d5c2401fb5ac60 (diff)
e1000e: Fix CRC stripping in hardware context bug
CRC stripping was only correctly enabled for packet split recieves which is used when receiving jumbo frames. Correctly enable SECRC also for normal buffer packet receives. Tested by Andy Gospodarek and Johan Andersson, see bugzilla #9940. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r--drivers/net/e1000e/netdev.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index b9b0d321e70b..ea4ecc3bf82e 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1690,6 +1690,9 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
1690 else 1690 else
1691 rctl |= E1000_RCTL_LPE; 1691 rctl |= E1000_RCTL_LPE;
1692 1692
1693 /* Enable hardware CRC frame stripping */
1694 rctl |= E1000_RCTL_SECRC;
1695
1693 /* Setup buffer sizes */ 1696 /* Setup buffer sizes */
1694 rctl &= ~E1000_RCTL_SZ_4096; 1697 rctl &= ~E1000_RCTL_SZ_4096;
1695 rctl |= E1000_RCTL_BSEX; 1698 rctl |= E1000_RCTL_BSEX;
@@ -1755,9 +1758,6 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
1755 1758
1756 /* Enable Packet split descriptors */ 1759 /* Enable Packet split descriptors */
1757 rctl |= E1000_RCTL_DTYP_PS; 1760 rctl |= E1000_RCTL_DTYP_PS;
1758
1759 /* Enable hardware CRC frame stripping */
1760 rctl |= E1000_RCTL_SECRC;
1761 1761
1762 psrctl |= adapter->rx_ps_bsize0 >> 1762 psrctl |= adapter->rx_ps_bsize0 >>
1763 E1000_PSRCTL_BSIZE0_SHIFT; 1763 E1000_PSRCTL_BSIZE0_SHIFT;