diff options
| -rw-r--r-- | net/core/net-sysfs.c | 14 |
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; } |
