diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-05-15 11:26:03 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-05-15 11:26:03 -0400 |
commit | 5006ecc2d5073d4e52f54381fd0fee1575d4ce22 (patch) | |
tree | bedfff6f96118771b809de30e559cc370f94c7be /net/bridge | |
parent | acc696d93dcf993dec123d69d599979e1456ffec (diff) | |
parent | 9be2f7c38e0bd64e8a0f74ea68df1e73e2ddfcc3 (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 |
2 files changed, 8 insertions, 14 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 59eef42d4a4..ad1c7af65ec 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -308,26 +308,19 @@ int br_add_bridge(const char *name) if (ret) goto err2; - /* network device kobject is not setup until - * after rtnl_unlock does it's hotplug magic. - * so hold reference to avoid race. - */ - dev_hold(dev); - rtnl_unlock(); - ret = br_sysfs_addbr(dev); - dev_put(dev); - - if (ret) - unregister_netdev(dev); - out: - return ret; + if (ret) + goto err3; + rtnl_unlock(); + return 0; + err3: + unregister_netdev(dev); err2: free_netdev(dev); err1: rtnl_unlock(); - goto out; + return ret; } int br_del_bridge(const char *name) diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index b0b7f55c1ed..bfa4d8c333f 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) } if (is_multicast_ether_addr(dest)) { + br->statistics.multicast++; br_flood_forward(br, skb, !passedup); if (!passedup) br_pass_frame_up(br, skb); |