summaryrefslogtreecommitdiff
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2011-11-03 23:32:20 -0400
committerGrant Likely <grant.likely@secretlab.ca>2011-11-03 23:32:20 -0400
commit3983138c017b6aeab6ce3dbb1e9afbe80bdac496 (patch)
tree9fdcddfdb8ada91504c90e2551ba6a565ade7325 /net/core/dev.c
parented5f886d16369fed5a69d96b8e85777c47206de1 (diff)
parent02aac316abf436a7529d46a71f7083f9f9ef4b49 (diff)
Merge branch 'for-grant' of git://sources.calxeda.com/kernel/linux into devicetree/merge
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index edcf019c056d..6ba50a1e404c 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3283,18 +3283,18 @@ another_round:
ncls:
#endif
+ rx_handler = rcu_dereference(skb->dev->rx_handler);
if (vlan_tx_tag_present(skb)) {
if (pt_prev) {
ret = deliver_skb(skb, pt_prev, orig_dev);
pt_prev = NULL;
}
- if (vlan_do_receive(&skb))
+ if (vlan_do_receive(&skb, !rx_handler))
goto another_round;
else if (unlikely(!skb))
goto out;
}
- rx_handler = rcu_dereference(skb->dev->rx_handler);
if (rx_handler) {
if (pt_prev) {
ret = deliver_skb(skb, pt_prev, orig_dev);