diff options
author | Joonwoo Park <joonwpark81@gmail.com> | 2007-12-11 09:39:35 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-12-14 09:51:06 -0800 |
commit | c8ddbf107012e54c432ba85192d18e873b8af1e5 (patch) | |
tree | 3444eb7c07689783eb4acbde2aaf51e27f804876 | |
parent | aa53617cb1a0083372b4b6440587ca703e4dddaf (diff) | |
download | lwn-c8ddbf107012e54c432ba85192d18e873b8af1e5.tar.gz lwn-c8ddbf107012e54c432ba85192d18e873b8af1e5.zip |
VLAN: Fix nested VLAN transmit bug
[VLAN]: Fix nested VLAN transmit bug
[ Upstream commit: 6ab3b487db77fa98a24560f11a5a8e744b98d877 ]
Fix misbehavior of vlan_dev_hard_start_xmit() for recursive encapsulations.
Signed-off-by: Joonwoo Park <joonwpark81@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | net/8021q/vlan_dev.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 328759c32d61..6f5e73869e6b 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c @@ -459,7 +459,8 @@ int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) * OTHER THINGS LIKE FDDI/TokenRing/802.3 SNAPs... */ - if (veth->h_vlan_proto != htons(ETH_P_8021Q)) { + if (veth->h_vlan_proto != htons(ETH_P_8021Q) || + VLAN_DEV_INFO(dev)->flags & VLAN_FLAG_REORDER_HDR) { int orig_headroom = skb_headroom(skb); unsigned short veth_TCI; |