I narrowed the search to a memmove() called from skb_reorder_vlan_header() in net/core/skbuff.c.
> memmove(skb->data - ETH_HLEN, skb->data - skb->mac_len - VLAN_HLEN, > 2 * ETH_ALEN); Calling skb_reset_mac_len() after skb_reset_mac_header() before calling br_allowed_ingress() in net/bridge/br_device.c fixes the problem. diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index af5b8c87f590..e10131e2f68f 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -58,6 +58,7 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) BR_INPUT_SKB_CB(skb)->brdev = dev; skb_reset_mac_header(skb); + skb_reset_mac_len(skb); eth = eth_hdr(skb); skb_pull(skb, ETH_HLEN); I'll put together an official patch and submit it. Should I use another email account? Are my emails being ignored because of that stupid disclaimer my employer attaches to my messages (outside my control)? Brandon -- CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain proprietary, confidential or privileged information or otherwise be protected by law. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify the sender and destroy all copies and the original message.