]>
Commit | Line | Data |
---|---|---|
814f5a02 AD |
1 | From 748572162a2bc3ce6f0b215e25ad601c3ec33e77 Mon Sep 17 00:00:00 2001 |
2 | From: Herbert Xu <herbert@gondor.apana.org.au> | |
3 | Date: Fri, 13 Apr 2012 02:37:42 +0000 | |
4 | Subject: bridge: Add br_multicast_start_querier | |
5 | ||
6 | This patch adds the helper br_multicast_start_querier so that | |
7 | the code which starts the queriers in br_multicast_toggle can | |
8 | be reused elsewhere. | |
9 | ||
10 | Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> | |
11 | Signed-off-by: David S. Miller <davem@davemloft.net> | |
12 | --- | |
13 | diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c | |
14 | index 3253107..0385584 100644 | |
15 | --- a/net/bridge/br_multicast.c | |
16 | +++ b/net/bridge/br_multicast.c | |
17 | @@ -1740,6 +1740,21 @@ unlock: | |
18 | return err; | |
19 | } | |
20 | ||
21 | +static void br_multicast_start_querier(struct net_bridge *br) | |
22 | +{ | |
23 | + struct net_bridge_port *port; | |
24 | + | |
25 | + br_multicast_open(br); | |
26 | + | |
27 | + list_for_each_entry(port, &br->port_list, list) { | |
28 | + if (port->state == BR_STATE_DISABLED || | |
29 | + port->state == BR_STATE_BLOCKING) | |
30 | + continue; | |
31 | + | |
32 | + __br_multicast_enable_port(port); | |
33 | + } | |
34 | +} | |
35 | + | |
36 | int br_multicast_toggle(struct net_bridge *br, unsigned long val) | |
37 | { | |
38 | struct net_bridge_port *port; | |
39 | @@ -1771,14 +1786,7 @@ rollback: | |
40 | goto rollback; | |
41 | } | |
42 | ||
43 | - br_multicast_open(br); | |
44 | - list_for_each_entry(port, &br->port_list, list) { | |
45 | - if (port->state == BR_STATE_DISABLED || | |
46 | - port->state == BR_STATE_BLOCKING) | |
47 | - continue; | |
48 | - | |
49 | - __br_multicast_enable_port(port); | |
50 | - } | |
51 | + br_multicast_start_querier(br); | |
52 | ||
53 | unlock: | |
54 | spin_unlock(&br->multicast_lock); |