From: Tommy Christensen [mailto:tommy.christensen@xxxxxxxxx]
Sent: Wednesday, October 08, 2003 10:09 AM
To: Christian Darnell
Cc: 'Linux 802.1Q VLAN'; Bart De Schuymer; netdev@xxxxxxxxxxx; bridge
Subject: Re: [Bridge] RE: [VLAN] Re: [PATCH/RFC] Let {ip, arp}tables
"see" bridged VLAN tagged{I,AR}P packets
This is because the VLAN code is mangling shared data.
You need to do something like this:
--- linux-2.4/net/8021q/vlan_dev.c.org 2003-02-25 15:23:09.000000000
+0100
+++ linux-2.4/net/8021q/vlan_dev.c 2003-10-07 16:01:29.000000000 +0200
@@ -75,7 +75,12 @@
static inline struct sk_buff *vlan_check_reorder_header(struct sk_buff
*skb)
{
if (VLAN_DEV_INFO(skb->dev)->flags & 1) {
- skb = skb_share_check(skb, GFP_ATOMIC);
+ if (skb_shared(skb) || skb_cloned(skb)) {
+ struct sk_buff *nskb;
+ nskb = skb_copy(skb, GFP_ATOMIC);
+ kfree_skb(skb);
+ skb = nskb;
+ }