bridge: Add multicast start/stop hooks
[linux-block.git] / net / bridge / br_device.c
index 1a99c4e04e85f63f5ee0527d1952ac2239aabc9e..91dffe7574d6724ab0dd2ca4057f2989f56e5494 100644 (file)
@@ -26,6 +26,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev)
        const unsigned char *dest = skb->data;
        struct net_bridge_fdb_entry *dst;
 
+       BR_INPUT_SKB_CB(skb)->brdev = dev;
+
        dev->stats.tx_packets++;
        dev->stats.tx_bytes += skb->len;
 
@@ -49,6 +51,7 @@ static int br_dev_open(struct net_device *dev)
        br_features_recompute(br);
        netif_start_queue(dev);
        br_stp_enable_bridge(br);
+       br_multicast_open(br);
 
        return 0;
 }
@@ -59,7 +62,10 @@ static void br_dev_set_multicast_list(struct net_device *dev)
 
 static int br_dev_stop(struct net_device *dev)
 {
-       br_stp_disable_bridge(netdev_priv(dev));
+       struct net_bridge *br = netdev_priv(dev);
+
+       br_stp_disable_bridge(br);
+       br_multicast_stop(br);
 
        netif_stop_queue(dev);