From 1c004496f6195721576ea4f60ba96071e737bab3 Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Thu, 25 Oct 2007 13:57:58 -0700 Subject: [PATCH] --- yaml --- r: 72719 b: refs/heads/master c: 140a74802894e9db57e5cd77ccff77e590ece5f3 h: refs/heads/master i: 72717: 3789a01b06e52cc83cb92668afaed5d71f0a5130 72715: 84fceff22dee57483bddfe9ae6cf384b997408ca 72711: 9216a90c580ef0e2fffb19ef56c302a16aca62b6 72703: 95b9ede29621d113f5e224cc94d0c33e09e6341b v: v3 --- [refs] | 2 +- trunk/drivers/net/e1000e/netdev.c | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index 134786ee7819..809263d85476 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: df762464ad0fad721f9fc5724e85b3df0d550acd +refs/heads/master: 140a74802894e9db57e5cd77ccff77e590ece5f3 diff --git a/trunk/drivers/net/e1000e/netdev.c b/trunk/drivers/net/e1000e/netdev.c index e87ed3133528..03fcc70e0198 100644 --- a/trunk/drivers/net/e1000e/netdev.c +++ b/trunk/drivers/net/e1000e/netdev.c @@ -494,10 +494,6 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter, goto next_desc; } - /* adjust length to remove Ethernet CRC */ - length -= 4; - - /* probably a little skewed due to removing CRC */ total_rx_bytes += length; total_rx_packets++; @@ -964,8 +960,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ); pci_dma_sync_single_for_device(pdev, ps_page->dma, PAGE_SIZE, PCI_DMA_FROMDEVICE); - /* remove the CRC */ - l1 -= 4; + skb_put(skb, l1); goto copydone; } /* if */ @@ -987,10 +982,6 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, skb->truesize += length; } - /* strip the ethernet crc, problem is we're using pages now so - * this whole operation can get a little cpu intensive */ - pskb_trim(skb, skb->len - 4); - copydone: total_rx_bytes += skb->len; total_rx_packets++; @@ -2034,9 +2025,11 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) ew32(RFCTL, rfctl); - /* disable the stripping of CRC because it breaks - * BMC firmware connected over SMBUS */ - rctl |= E1000_RCTL_DTYP_PS /* | E1000_RCTL_SECRC */; + /* Enable Packet split descriptors */ + rctl |= E1000_RCTL_DTYP_PS; + + /* Enable hardware CRC frame stripping */ + rctl |= E1000_RCTL_SECRC; psrctl |= adapter->rx_ps_bsize0 >> E1000_PSRCTL_BSIZE0_SHIFT;