diff options
| author | Jeff Garzik <jeff@garzik.org> | 2006-05-20 00:03:38 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-05-20 00:03:38 -0400 |
| commit | badc48e6605ddeeb2484afae5993c859494decaa (patch) | |
| tree | 7da638f9bb53b1812b71e40ad6deca91d59ad301 /net/bridge | |
| parent | 753a6c4ff4c371a3e4e3408aaba4d03f3cfde73a (diff) | |
| parent | 2f880b65fdbc2d4915bddc59d75a176329570fdd (diff) | |
Merge branch 'master' into upstream
Diffstat (limited to 'net/bridge')
| -rw-r--r-- | net/bridge/br_if.c | 21 | ||||
| -rw-r--r-- | net/bridge/br_input.c | 1 | ||||
| -rw-r--r-- | net/bridge/netfilter/ebt_log.c | 2 |
3 files changed, 9 insertions, 15 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 59eef42d4a42..ad1c7af65ec8 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c | |||
| @@ -308,26 +308,19 @@ int br_add_bridge(const char *name) | |||
| 308 | if (ret) | 308 | if (ret) |
| 309 | goto err2; | 309 | goto err2; |
| 310 | 310 | ||
| 311 | /* network device kobject is not setup until | ||
| 312 | * after rtnl_unlock does it's hotplug magic. | ||
| 313 | * so hold reference to avoid race. | ||
| 314 | */ | ||
| 315 | dev_hold(dev); | ||
| 316 | rtnl_unlock(); | ||
| 317 | |||
| 318 | ret = br_sysfs_addbr(dev); | 311 | ret = br_sysfs_addbr(dev); |
| 319 | dev_put(dev); | 312 | if (ret) |
| 320 | 313 | goto err3; | |
| 321 | if (ret) | 314 | rtnl_unlock(); |
| 322 | unregister_netdev(dev); | 315 | return 0; |
| 323 | out: | ||
| 324 | return ret; | ||
| 325 | 316 | ||
| 317 | err3: | ||
| 318 | unregister_netdev(dev); | ||
| 326 | err2: | 319 | err2: |
| 327 | free_netdev(dev); | 320 | free_netdev(dev); |
| 328 | err1: | 321 | err1: |
| 329 | rtnl_unlock(); | 322 | rtnl_unlock(); |
| 330 | goto out; | 323 | return ret; |
| 331 | } | 324 | } |
| 332 | 325 | ||
| 333 | int br_del_bridge(const char *name) | 326 | int br_del_bridge(const char *name) |
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index b0b7f55c1edd..bfa4d8c333f7 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c | |||
| @@ -66,6 +66,7 @@ int br_handle_frame_finish(struct sk_buff *skb) | |||
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | if (is_multicast_ether_addr(dest)) { | 68 | if (is_multicast_ether_addr(dest)) { |
| 69 | br->statistics.multicast++; | ||
| 69 | br_flood_forward(br, skb, !passedup); | 70 | br_flood_forward(br, skb, !passedup); |
| 70 | if (!passedup) | 71 | if (!passedup) |
| 71 | br_pass_frame_up(br, skb); | 72 | br_pass_frame_up(br, skb); |
diff --git a/net/bridge/netfilter/ebt_log.c b/net/bridge/netfilter/ebt_log.c index d159c92cca84..466ed3440b74 100644 --- a/net/bridge/netfilter/ebt_log.c +++ b/net/bridge/netfilter/ebt_log.c | |||
| @@ -168,7 +168,7 @@ static void ebt_log(const struct sk_buff *skb, unsigned int hooknr, | |||
| 168 | 168 | ||
| 169 | if (info->bitmask & EBT_LOG_NFLOG) | 169 | if (info->bitmask & EBT_LOG_NFLOG) |
| 170 | nf_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li, | 170 | nf_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li, |
| 171 | info->prefix); | 171 | "%s", info->prefix); |
| 172 | else | 172 | else |
| 173 | ebt_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li, | 173 | ebt_log_packet(PF_BRIDGE, hooknr, skb, in, out, &li, |
| 174 | info->prefix); | 174 | info->prefix); |
