diff options
author | Patrick McHardy <kaber@trash.net> | 2010-02-10 08:17:10 -0500 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-02-10 08:17:10 -0500 |
commit | 9ab99d5a43e9f283738fd9fd365539306d13eaac (patch) | |
tree | 0214a63e3f4f7f4f187f0139e4a5d8abe453902b /net/bridge | |
parent | 76780373190d7e8ddfb6fed06aef068e2445c743 (diff) | |
parent | b1109bf085c8dd69537b7876ea83f914dd1fe46a (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.c | 4 | ||||
-rw-r--r-- | net/bridge/br_private.h | 1 | ||||
-rw-r--r-- | net/bridge/netfilter/ebtables.c | 6 |
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 | ||
470 | void br_net_exit(struct net *net) | 468 | void __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 | ||