Lines 406-411
static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
Link Here
|
406 |
goto next_desc; |
406 |
goto next_desc; |
407 |
} |
407 |
} |
408 |
|
408 |
|
|
|
409 |
/* adjust length to remove Ethernet CRC */ |
410 |
length -= 4; |
411 |
|
412 |
/* probably a little skewed due to removing CRC */ |
409 |
total_rx_bytes += length; |
413 |
total_rx_bytes += length; |
410 |
total_rx_packets++; |
414 |
total_rx_packets++; |
411 |
|
415 |
|
Lines 699-705
static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
Link Here
|
699 |
kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ); |
703 |
kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ); |
700 |
pci_dma_sync_single_for_device(pdev, ps_page->dma, |
704 |
pci_dma_sync_single_for_device(pdev, ps_page->dma, |
701 |
PAGE_SIZE, PCI_DMA_FROMDEVICE); |
705 |
PAGE_SIZE, PCI_DMA_FROMDEVICE); |
702 |
|
706 |
/* remove the CRC */ |
|
|
707 |
l1 -= 4; |
703 |
skb_put(skb, l1); |
708 |
skb_put(skb, l1); |
704 |
goto copydone; |
709 |
goto copydone; |
705 |
} /* if */ |
710 |
} /* if */ |
Lines 721-726
static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
Link Here
|
721 |
skb->truesize += length; |
726 |
skb->truesize += length; |
722 |
} |
727 |
} |
723 |
|
728 |
|
|
|
729 |
/* strip the ethernet crc, problem is we're using pages now so |
730 |
* this whole operation can get a little cpu intensive */ |
731 |
pskb_trim(skb, skb->len - 4); |
732 |
|
724 |
copydone: |
733 |
copydone: |
725 |
total_rx_bytes += skb->len; |
734 |
total_rx_bytes += skb->len; |
726 |
total_rx_packets++; |
735 |
total_rx_packets++; |
Lines 1753-1763
static void e1000_setup_rctl(struct e1000_adapter *adapter)
Link Here
|
1753 |
|
1762 |
|
1754 |
ew32(RFCTL, rfctl); |
1763 |
ew32(RFCTL, rfctl); |
1755 |
|
1764 |
|
1756 |
/* Enable Packet split descriptors */ |
1765 |
/* disable the stripping of CRC because it breaks |
1757 |
rctl |= E1000_RCTL_DTYP_PS; |
1766 |
* BMC firmware connected over SMBUS */ |
1758 |
|
1767 |
rctl |= E1000_RCTL_DTYP_PS /* | E1000_RCTL_SECRC */; |
1759 |
/* Enable hardware CRC frame stripping */ |
|
|
1760 |
rctl |= E1000_RCTL_SECRC; |
1761 |
|
1768 |
|
1762 |
psrctl |= adapter->rx_ps_bsize0 >> |
1769 |
psrctl |= adapter->rx_ps_bsize0 >> |
1763 |
E1000_PSRCTL_BSIZE0_SHIFT; |
1770 |
E1000_PSRCTL_BSIZE0_SHIFT; |