diff --git a/[refs] b/[refs] index ca473092d914..5c85c3514db7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8c893ff6abbac0c7c05b1cb9bfb6e2dfc4538c75 +refs/heads/master: 36485707bbd9729e0c52315b173aeed9bc2303dd diff --git a/trunk/net/bridge/br_if.c b/trunk/net/bridge/br_if.c index ad1c7af65ec8..f5d47bf4f967 100644 --- a/trunk/net/bridge/br_if.c +++ b/trunk/net/bridge/br_if.c @@ -300,25 +300,20 @@ int br_add_bridge(const char *name) rtnl_lock(); if (strchr(dev->name, '%')) { ret = dev_alloc_name(dev, dev->name); - if (ret < 0) - goto err1; + if (ret < 0) { + free_netdev(dev); + goto out; + } } ret = register_netdevice(dev); if (ret) - goto err2; + goto out; ret = br_sysfs_addbr(dev); if (ret) - goto err3; - rtnl_unlock(); - return 0; - - err3: - unregister_netdev(dev); - err2: - free_netdev(dev); - err1: + unregister_netdevice(dev); + out: rtnl_unlock(); return ret; }