|
@@ -273,17 +273,13 @@ int br_add_bridge(const char *name)
|
|
rtnl_lock();
|
|
rtnl_lock();
|
|
if (strchr(dev->name, '%')) {
|
|
if (strchr(dev->name, '%')) {
|
|
ret = dev_alloc_name(dev, dev->name);
|
|
ret = dev_alloc_name(dev, dev->name);
|
|
- if (ret < 0) {
|
|
|
|
- free_netdev(dev);
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
|
|
+ if (ret < 0)
|
|
|
|
+ goto out_free;
|
|
}
|
|
}
|
|
|
|
|
|
ret = register_netdevice(dev);
|
|
ret = register_netdevice(dev);
|
|
- if (ret) {
|
|
|
|
- free_netdev(dev);
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
|
|
+ if (ret)
|
|
|
|
+ goto out_free;
|
|
|
|
|
|
ret = br_sysfs_addbr(dev);
|
|
ret = br_sysfs_addbr(dev);
|
|
if (ret)
|
|
if (ret)
|
|
@@ -291,6 +287,10 @@ int br_add_bridge(const char *name)
|
|
out:
|
|
out:
|
|
rtnl_unlock();
|
|
rtnl_unlock();
|
|
return ret;
|
|
return ret;
|
|
|
|
+
|
|
|
|
+out_free:
|
|
|
|
+ free_netdev(dev);
|
|
|
|
+ goto out;
|
|
}
|
|
}
|
|
|
|
|
|
int br_del_bridge(const char *name)
|
|
int br_del_bridge(const char *name)
|