As noted by Jonas Munsin, the vlan patch that went into 2.6.0-test7 did a kfree() rather than a kfree_skb(). Hmm. Instead of just fixing this up, I suggest we do things the right way: The VLAN code have long been claiming to handle shared SKBs, without actually doing so. I have now added the call to skb_share_check(). This enables us to simply do a skb_unshare() when mangling the ethernet header. Patch is against linux-2.6.0-test7 (applies to 2.4.23-pre7 as well). -Tommy