aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/realtek
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2012-02-10 10:04:32 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-02-24 04:56:24 -0500
commiteeb69aa443e8cdc945405c48f21ce03f5a3b1f86 (patch)
treea86ea6fafea4e2b1a0e57f6599ba35f223d2943c /drivers/net/ethernet/realtek
parentd95089dc54ad07a8d10292fd06963b29b059ed5b (diff)
8139too: Support RX-FCS flag.
This allows the NIC to pass the Ethernet FCS on up the stack, and is useful when sniffing networks. Signed-off-by: Ben Greear <greearb@candelatech.com>
Diffstat (limited to 'drivers/net/ethernet/realtek')
-rw-r--r--drivers/net/ethernet/realtek/8139too.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/realtek/8139too.c b/drivers/net/ethernet/realtek/8139too.c
index 1b9a090d4865..abd6aca70e9b 100644
--- a/drivers/net/ethernet/realtek/8139too.c
+++ b/drivers/net/ethernet/realtek/8139too.c
@@ -1023,6 +1023,7 @@ static int __devinit rtl8139_init_one (struct pci_dev *pdev,
1023 dev->vlan_features = dev->features; 1023 dev->vlan_features = dev->features;
1024 1024
1025 dev->hw_features |= NETIF_F_RXALL; 1025 dev->hw_features |= NETIF_F_RXALL;
1026 dev->hw_features |= NETIF_F_RXFCS;
1026 1027
1027 dev->irq = pdev->irq; 1028 dev->irq = pdev->irq;
1028 1029
@@ -1970,7 +1971,10 @@ static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp,
1970 /* read size+status of next frame from DMA ring buffer */ 1971 /* read size+status of next frame from DMA ring buffer */
1971 rx_status = le32_to_cpu (*(__le32 *) (rx_ring + ring_offset)); 1972 rx_status = le32_to_cpu (*(__le32 *) (rx_ring + ring_offset));
1972 rx_size = rx_status >> 16; 1973 rx_size = rx_status >> 16;
1973 pkt_size = rx_size - 4; 1974 if (likely(!(dev->features & NETIF_F_RXFCS)))
1975 pkt_size = rx_size - 4;
1976 else
1977 pkt_size = rx_size;
1974 1978
1975 netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n", 1979 netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n",
1976 __func__, rx_status, rx_size, cur_rx); 1980 __func__, rx_status, rx_size, cur_rx);