diff options
author | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-10-15 00:14:01 +0000 |
---|---|---|
committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-10-15 00:14:01 +0000 |
commit | 07aaae44f5a3962c3a410a6dd7936dfa7dece2b9 (patch) | |
tree | 0cdb5735800ddd63d8850aa26d3a3f1f3334267a /drivers/net/gianfar.c | |
parent | 07a062140372187642003e02a49edc8a2115c1ca (diff) | |
parent | 976d167615b64e14bc1491ca51d424e2ba9a5e84 (diff) |
Merge commit 'v3.1-rc9' into fbdev-next
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 2659daad783..31d5c574e5a 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 */ |