aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorWANG Cong <xiyou.wangcong@gmail.com>2014-01-10 16:58:47 -0500
committerDavid S. Miller <davem@davemloft.net>2014-01-14 02:42:39 -0500
commitb86f81cca9442ce6cfbe76d10fb8d2c61122ae12 (patch)
tree2bea049dae33c9c5fe6a4191a796bea02b4af48e /net/bridge
parentae237b3ede6481d28daa62be44a8061d15912436 (diff)
bridge: move br_net_exit() to br.c
And it can become static. Cc: Stephen Hemminger <stephen@networkplumber.org> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/br.c21
-rw-r--r--net/bridge/br_if.c15
-rw-r--r--net/bridge/br_private.h1
3 files changed, 18 insertions, 19 deletions
diff --git a/net/bridge/br.c b/net/bridge/br.c
index ba780cc8e515..19311aafcf5a 100644
--- a/net/bridge/br.c
+++ b/net/bridge/br.c
@@ -22,14 +22,29 @@
22 22
23#include "br_private.h" 23#include "br_private.h"
24 24
25static const struct stp_proto br_stp_proto = { 25static void __net_exit br_net_exit(struct net *net)
26 .rcv = br_stp_rcv, 26{
27}; 27 struct net_device *dev;
28 LIST_HEAD(list);
29
30 rtnl_lock();
31 for_each_netdev(net, dev)
32 if (dev->priv_flags & IFF_EBRIDGE)
33 br_dev_delete(dev, &list);
34
35 unregister_netdevice_many(&list);
36 rtnl_unlock();
37
38}
28 39
29static struct pernet_operations br_net_ops = { 40static struct pernet_operations br_net_ops = {
30 .exit = br_net_exit, 41 .exit = br_net_exit,
31}; 42};
32 43
44static const struct stp_proto br_stp_proto = {
45 .rcv = br_stp_rcv,
46};
47
33static int __init br_init(void) 48static int __init br_init(void)
34{ 49{
35 int err; 50 int err;
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 1f6bd1e2e8a4..cffe1d666ba1 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -455,18 +455,3 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
455 455
456 return 0; 456 return 0;
457} 457}
458
459void __net_exit br_net_exit(struct net *net)
460{
461 struct net_device *dev;
462 LIST_HEAD(list);
463
464 rtnl_lock();
465 for_each_netdev(net, dev)
466 if (dev->priv_flags & IFF_EBRIDGE)
467 br_dev_delete(dev, &list);
468
469 unregister_netdevice_many(&list);
470 rtnl_unlock();
471
472}
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 3733f152351c..fcd12333c59b 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -407,7 +407,6 @@ void br_flood_forward(struct net_bridge *br, struct sk_buff *skb,
407void br_port_carrier_check(struct net_bridge_port *p); 407void br_port_carrier_check(struct net_bridge_port *p);
408int br_add_bridge(struct net *net, const char *name); 408int br_add_bridge(struct net *net, const char *name);
409int br_del_bridge(struct net *net, const char *name); 409int br_del_bridge(struct net *net, const char *name);
410void br_net_exit(struct net *net);
411int br_add_if(struct net_bridge *br, struct net_device *dev); 410int br_add_if(struct net_bridge *br, struct net_device *dev);
412int br_del_if(struct net_bridge *br, struct net_device *dev); 411int br_del_if(struct net_bridge *br, struct net_device *dev);
413int br_min_mtu(const struct net_bridge *br); 412int br_min_mtu(const struct net_bridge *br);