X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=net%2Fbridge%2Fbr_device.c;h=8fe8b71b487add263a711d39e52f683675708dd6;hb=12464bb8de021a01fa7ec9299c273c247df7f198;hp=63f0455c0bc3e21fea311a4d14d24a995c606d6f;hpb=15eeb2e925c091b999195d0102ac39a271dbcb7e;p=~andy%2Flinux diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 63f0455c0bc..8fe8b71b487 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -49,14 +49,14 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) brstats->tx_bytes += skb->len; u64_stats_update_end(&brstats->syncp); - if (!br_allowed_ingress(br, br_get_vlan_info(br), skb, &vid)) - goto out; - BR_INPUT_SKB_CB(skb)->brdev = dev; skb_reset_mac_header(skb); skb_pull(skb, ETH_HLEN); + if (!br_allowed_ingress(br, br_get_vlan_info(br), skb, &vid)) + goto out; + if (is_broadcast_ether_addr(dest)) br_flood_deliver(br, skb, false); else if (is_multicast_ether_addr(dest)) {