From 66371c9e39deff1b48d3426c1c8a4923ef492f6e Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Fri, 13 Apr 2012 02:37:42 +0000 Subject: [PATCH] --- yaml --- r: 300758 b: refs/heads/master c: 748572162a2bc3ce6f0b215e25ad601c3ec33e77 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/bridge/br_multicast.c | 25 ++++++++++++++++--------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 60b115661b67..eb1f04b3f229 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 95c961747284a6b83a5e2d81240e214b0fa3464d +refs/heads/master: 748572162a2bc3ce6f0b215e25ad601c3ec33e77 diff --git a/trunk/net/bridge/br_multicast.c b/trunk/net/bridge/br_multicast.c index 020e463f2225..ecabf210d0d2 100644 --- a/trunk/net/bridge/br_multicast.c +++ b/trunk/net/bridge/br_multicast.c @@ -1689,9 +1689,23 @@ int br_multicast_set_port_router(struct net_bridge_port *p, unsigned long val) return err; } -int br_multicast_toggle(struct net_bridge *br, unsigned long val) +static void br_multicast_start_querier(struct net_bridge *br) { struct net_bridge_port *port; + + br_multicast_open(br); + + list_for_each_entry(port, &br->port_list, list) { + if (port->state == BR_STATE_DISABLED || + port->state == BR_STATE_BLOCKING) + continue; + + __br_multicast_enable_port(port); + } +} + +int br_multicast_toggle(struct net_bridge *br, unsigned long val) +{ int err = 0; struct net_bridge_mdb_htable *mdb; @@ -1721,14 +1735,7 @@ int br_multicast_toggle(struct net_bridge *br, unsigned long val) goto rollback; } - br_multicast_open(br); - list_for_each_entry(port, &br->port_list, list) { - if (port->state == BR_STATE_DISABLED || - port->state == BR_STATE_BLOCKING) - continue; - - __br_multicast_enable_port(port); - } + br_multicast_start_querier(br); unlock: spin_unlock_bh(&br->multicast_lock);