This patch hooks up the bridge start/stop and add/delete/disable
port functions to the new multicast module.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
        br_features_recompute(br);
        netif_start_queue(dev);
        br_stp_enable_bridge(br);
+       br_multicast_open(br);
 
        return 0;
 }
 
 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);
 
 
 
        rcu_assign_pointer(dev->br_port, NULL);
 
+       br_multicast_del_port(p);
+
        kobject_uevent(&p->kobj, KOBJ_REMOVE);
        kobject_del(&p->kobj);
 
        br_netfilter_rtable_init(br);
 
        br_stp_timer_init(br);
+       br_multicast_init(br);
 
        return dev;
 }
        br_init_port(p);
        p->state = BR_STATE_DISABLED;
        br_stp_port_timer_init(p);
+       br_multicast_add_port(p);
 
        return p;
 }
 
        else
                p->state = BR_STATE_LEARNING;
 
+       br_multicast_enable_port(p);
+
        br_log_state(p);
 
        if (br->forward_delay != 0)
 
        del_timer(&p->hold_timer);
 
        br_fdb_delete_by_port(br, p, 0);
+       br_multicast_disable_port(p);
 
        br_configuration_update(br);