summaryrefslogtreecommitdiff
path: root/drivers/net/gianfar.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-09-20 21:45:56 +0200
committerArnd Bergmann <arnd@arndb.de>2011-09-20 21:45:56 +0200
commit1fdb4888e45f1413972a8e9da55f3ffc08b9abcb (patch)
tree635ef73cdff38d21a529bbdcab4cd2cb39a29484 /drivers/net/gianfar.c
parent1884af9365a96314164f4110d4528d425e5dd843 (diff)
parentceb1c532ba6220900e61ec7073a9234661efa450 (diff)
Merge branch 'omap/cleanup' into next/cleanup
Diffstat (limited to 'drivers/net/gianfar.c')
-rw-r--r--drivers/net/gianfar.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 2659daad783d..31d5c574e5a9 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -2710,8 +2710,13 @@ static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb,
/* Tell the skb what kind of packet this is */
skb->protocol = eth_type_trans(skb, dev);
- /* Set vlan tag */
- if (fcb->flags & RXFCB_VLN)
+ /*
+ * There's need to check for NETIF_F_HW_VLAN_RX here.
+ * Even if vlan rx accel is disabled, on some chips
+ * RXFCB_VLN is pseudo randomly set.
+ */
+ if (dev->features & NETIF_F_HW_VLAN_RX &&
+ fcb->flags & RXFCB_VLN)
__vlan_hwaccel_put_tag(skb, fcb->vlctl);
/* Send the packet up the stack */