diff options
author | Auke Kok <auke-jan.h.kok@intel.com> | 2008-07-08 18:08:29 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-11 01:20:31 -0400 |
commit | 87cb7e8cc59c89ccdcf243671c932179bb651a71 (patch) | |
tree | 7065eab557f93ad9d07465b9fa5b66923739775d /drivers/net/igb | |
parent | fe4506b6a2f9716ef62583020581ae2032573fed (diff) |
igb: reenable CRC stripping in hardware
We can remove a clunky workaround for not having the hardware
strip the CRC. 82575 silicon as well as the older PCI Express
e1000e hardware all work OK in this respect.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/igb')
-rw-r--r-- | drivers/net/igb/igb_main.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index e8ef5410591a..ae329c02eaef 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -1664,10 +1664,12 @@ static void igb_setup_rctl(struct igb_adapter *adapter) | |||
1664 | E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | | 1664 | E1000_RCTL_LBM_NO | E1000_RCTL_RDMTS_HALF | |
1665 | (adapter->hw.mac.mc_filter_type << E1000_RCTL_MO_SHIFT); | 1665 | (adapter->hw.mac.mc_filter_type << E1000_RCTL_MO_SHIFT); |
1666 | 1666 | ||
1667 | /* disable the stripping of CRC because it breaks | 1667 | /* |
1668 | * BMC firmware connected over SMBUS | 1668 | * enable stripping of CRC. It's unlikely this will break BMC |
1669 | rctl |= E1000_RCTL_SECRC; | 1669 | * redirection as it did with e1000. Newer features require |
1670 | * that the HW strips the CRC. | ||
1670 | */ | 1671 | */ |
1672 | rctl |= E1000_RCTL_SECRC; | ||
1671 | 1673 | ||
1672 | rctl &= ~E1000_RCTL_SBP; | 1674 | rctl &= ~E1000_RCTL_SBP; |
1673 | 1675 | ||
@@ -3743,7 +3745,6 @@ static bool igb_clean_rx_irq_adv(struct igb_ring *rx_ring, | |||
3743 | } | 3745 | } |
3744 | } | 3746 | } |
3745 | send_up: | 3747 | send_up: |
3746 | pskb_trim(skb, skb->len - 4); | ||
3747 | i++; | 3748 | i++; |
3748 | if (i == rx_ring->count) | 3749 | if (i == rx_ring->count) |
3749 | i = 0; | 3750 | i = 0; |