aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2010-02-10 08:17:10 -0500
committerPatrick McHardy <kaber@trash.net>2010-02-10 08:17:10 -0500
commit9ab99d5a43e9f283738fd9fd365539306d13eaac (patch)
tree0214a63e3f4f7f4f187f0139e4a5d8abe453902b /net/bridge
parent76780373190d7e8ddfb6fed06aef068e2445c743 (diff)
parentb1109bf085c8dd69537b7876ea83f914dd1fe46a (diff)
Merge branch 'master' of /repos/git/net-next-2.6
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/br_if.c4
-rw-r--r--net/bridge/br_private.h1
-rw-r--r--net/bridge/netfilter/ebtables.c6
3 files changed, 7 insertions, 4 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index a2cbe61f6e65..bc2b1badab88 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -206,8 +206,6 @@ static struct net_device *new_bridge_dev(struct net *net, const char *name)
206 206
207 br_netfilter_rtable_init(br); 207 br_netfilter_rtable_init(br);
208 208
209 INIT_LIST_HEAD(&br->age_list);
210
211 br_stp_timer_init(br); 209 br_stp_timer_init(br);
212 210
213 return dev; 211 return dev;
@@ -467,7 +465,7 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
467 return 0; 465 return 0;
468} 466}
469 467
470void br_net_exit(struct net *net) 468void __net_exit br_net_exit(struct net *net)
471{ 469{
472 struct net_device *dev; 470 struct net_device *dev;
473 LIST_HEAD(list); 471 LIST_HEAD(list);
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 2114e45682ea..1f0c4f44b765 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -93,7 +93,6 @@ struct net_bridge
93 struct net_device *dev; 93 struct net_device *dev;
94 spinlock_t hash_lock; 94 spinlock_t hash_lock;
95 struct hlist_head hash[BR_HASH_SIZE]; 95 struct hlist_head hash[BR_HASH_SIZE];
96 struct list_head age_list;
97 unsigned long feature_mask; 96 unsigned long feature_mask;
98#ifdef CONFIG_BRIDGE_NETFILTER 97#ifdef CONFIG_BRIDGE_NETFILTER
99 struct rtable fake_rtable; 98 struct rtable fake_rtable;
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index 12beb580aa21..208f4e32e732 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -1413,6 +1413,9 @@ static int do_ebt_set_ctl(struct sock *sk,
1413{ 1413{
1414 int ret; 1414 int ret;
1415 1415
1416 if (!capable(CAP_NET_ADMIN))
1417 return -EPERM;
1418
1416 switch(cmd) { 1419 switch(cmd) {
1417 case EBT_SO_SET_ENTRIES: 1420 case EBT_SO_SET_ENTRIES:
1418 ret = do_replace(sock_net(sk), user, len); 1421 ret = do_replace(sock_net(sk), user, len);
@@ -1432,6 +1435,9 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
1432 struct ebt_replace tmp; 1435 struct ebt_replace tmp;
1433 struct ebt_table *t; 1436 struct ebt_table *t;
1434 1437
1438 if (!capable(CAP_NET_ADMIN))
1439 return -EPERM;
1440
1435 if (copy_from_user(&tmp, user, sizeof(tmp))) 1441 if (copy_from_user(&tmp, user, sizeof(tmp)))
1436 return -EFAULT; 1442 return -EFAULT;
1437 1443