From ddcfc2615262ae49d37df789a8c1f6815d3db19f Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Fri, 10 Feb 2012 15:04:32 +0000 Subject: [PATCH] --- yaml --- r: 290450 b: refs/heads/master c: eeb69aa443e8cdc945405c48f21ce03f5a3b1f86 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/realtek/8139too.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6f4d20b00908..156044d71395 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d95089dc54ad07a8d10292fd06963b29b059ed5b +refs/heads/master: eeb69aa443e8cdc945405c48f21ce03f5a3b1f86 diff --git a/trunk/drivers/net/ethernet/realtek/8139too.c b/trunk/drivers/net/ethernet/realtek/8139too.c index 1b9a090d4865..abd6aca70e9b 100644 --- a/trunk/drivers/net/ethernet/realtek/8139too.c +++ b/trunk/drivers/net/ethernet/realtek/8139too.c @@ -1023,6 +1023,7 @@ static int __devinit rtl8139_init_one (struct pci_dev *pdev, dev->vlan_features = dev->features; dev->hw_features |= NETIF_F_RXALL; + dev->hw_features |= NETIF_F_RXFCS; dev->irq = pdev->irq; @@ -1970,7 +1971,10 @@ static int rtl8139_rx(struct net_device *dev, struct rtl8139_private *tp, /* read size+status of next frame from DMA ring buffer */ rx_status = le32_to_cpu (*(__le32 *) (rx_ring + ring_offset)); rx_size = rx_status >> 16; - pkt_size = rx_size - 4; + if (likely(!(dev->features & NETIF_F_RXFCS))) + pkt_size = rx_size - 4; + else + pkt_size = rx_size; netif_dbg(tp, rx_status, dev, "%s() status %04x, size %04x, cur %04x\n", __func__, rx_status, rx_size, cur_rx);