diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 22:22:44 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 22:22:44 (GMT) |
commit | 1a4ceab195e66bce9c1638fdded6d92988100ba4 (patch) | |
tree | 3ec17bd66fb3ac1429131e373cc8d99550d5451a /net/core/dev.c | |
parent | 83f89ca755c9f783b8229d968c4e9d2c660ca427 (diff) | |
parent | 6a32e4f9dd9219261f8856f817e6655114cfec2f (diff) | |
download | linux-fsl-qoriq-1a4ceab195e66bce9c1638fdded6d92988100ba4.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (27 commits)
vlan: allow nested vlan_do_receive()
ipv6: fix route lookup in addrconf_prefix_rcv()
bonding: eliminate bond_close race conditions
qlcnic: fix beacon and LED test.
qlcnic: Updated License file
qlcnic: updated reset sequence
qlcnic: reset loopback mode if promiscous mode setting fails.
qlcnic: skip IDC ack check in fw reset path.
i825xx: Fix incorrect dependency for BVME6000_NET
ipv6: fix route error binding peer in func icmp6_dst_alloc
ipv6: fix error propagation in ip6_ufo_append_data()
stmmac: update normal descriptor structure (v2)
stmmac: fix NULL pointer dereference in capabilities fixup (v2)
stmmac: fix a bug while checking the HW cap reg (v2)
be2net: Changing MAC Address of a VF was broken.
be2net: Refactored be_cmds.c file.
bnx2x: update driver version to 1.70.30-0
bnx2x: use FW 7.0.29.0
bnx2x: Enable changing speed when port type is PORT_DA
bnx2x: Fix 54618se LED behavior
...
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index edcf019..6ba50a1 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); |