aboutsummaryrefslogtreecommitdiff
path: root/net/core/net-sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/net-sysfs.c')
-rw-r--r--net/core/net-sysfs.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index ab1df5a2d..9373bcb5c 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1290,16 +1290,20 @@ int netdev_register_kobject(struct net_device *net)
error = device_add(dev);
if (error)
- return error;
+ goto error_put_device;
error = register_queue_kobjects(net);
- if (error) {
- device_del(dev);
- return error;
- }
+ if (error)
+ goto error_device_del;
+
+ return 0;
pm_runtime_set_memalloc_noio(dev, true);
+error_device_del:
+ device_del(dev);
+error_put_device:
+ put_device(dev);
return error;
}