diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 18:22:44 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 18:22:44 -0400 |
| commit | 1a4ceab195e66bce9c1638fdded6d92988100ba4 (patch) | |
| tree | 3ec17bd66fb3ac1429131e373cc8d99550d5451a /include/linux | |
| parent | 83f89ca755c9f783b8229d968c4e9d2c660ca427 (diff) | |
| parent | 6a32e4f9dd9219261f8856f817e6655114cfec2f (diff) | |
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 'include/linux')
| -rw-r--r-- | include/linux/if_vlan.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 44da4822bcab..12d5543b14f2 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
| @@ -106,7 +106,7 @@ extern struct net_device *__vlan_find_dev_deep(struct net_device *real_dev, | |||
| 106 | extern struct net_device *vlan_dev_real_dev(const struct net_device *dev); | 106 | extern struct net_device *vlan_dev_real_dev(const struct net_device *dev); |
| 107 | extern u16 vlan_dev_vlan_id(const struct net_device *dev); | 107 | extern u16 vlan_dev_vlan_id(const struct net_device *dev); |
| 108 | 108 | ||
| 109 | extern bool vlan_do_receive(struct sk_buff **skb); | 109 | extern bool vlan_do_receive(struct sk_buff **skb, bool last_handler); |
| 110 | extern struct sk_buff *vlan_untag(struct sk_buff *skb); | 110 | extern struct sk_buff *vlan_untag(struct sk_buff *skb); |
| 111 | 111 | ||
| 112 | #else | 112 | #else |
| @@ -128,9 +128,9 @@ static inline u16 vlan_dev_vlan_id(const struct net_device *dev) | |||
| 128 | return 0; | 128 | return 0; |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | static inline bool vlan_do_receive(struct sk_buff **skb) | 131 | static inline bool vlan_do_receive(struct sk_buff **skb, bool last_handler) |
| 132 | { | 132 | { |
| 133 | if ((*skb)->vlan_tci & VLAN_VID_MASK) | 133 | if (((*skb)->vlan_tci & VLAN_VID_MASK) && last_handler) |
| 134 | (*skb)->pkt_type = PACKET_OTHERHOST; | 134 | (*skb)->pkt_type = PACKET_OTHERHOST; |
| 135 | return false; | 135 | return false; |
| 136 | } | 136 | } |
