diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-09-20 21:45:56 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-09-20 21:45:56 +0200 |
commit | 1fdb4888e45f1413972a8e9da55f3ffc08b9abcb (patch) | |
tree | 635ef73cdff38d21a529bbdcab4cd2cb39a29484 /drivers/net/gianfar.c | |
parent | 1884af9365a96314164f4110d4528d425e5dd843 (diff) | |
parent | ceb1c532ba6220900e61ec7073a9234661efa450 (diff) |
Merge branch 'omap/cleanup' into next/cleanup
Diffstat (limited to 'drivers/net/gianfar.c')
-rw-r--r-- | drivers/net/gianfar.c | 9 |
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 */ |