diff options
author | Arvind Yadav <arvind.yadav.cs@gmail.com> | 2018-03-11 00:55:51 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-03-15 09:37:04 -0400 |
commit | 3aaba245dfa33270a464d3098b8cce2a2af32784 (patch) | |
tree | dcf05f25ddb8adc6bc7f411fb687497038cf3832 | |
parent | c1cc0d51140fbcbb3c8cb08ee7e92020dda9c1af (diff) |
driver core: cpu: use put_device() if device_register fail
if device_register() returned an error! Always use put_device()
to give up the reference initialized.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/base/cpu.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c index d21a2d913107..2da998baa75c 100644 --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c | |||
@@ -382,8 +382,10 @@ int register_cpu(struct cpu *cpu, int num) | |||
382 | if (cpu->hotpluggable) | 382 | if (cpu->hotpluggable) |
383 | cpu->dev.groups = hotplugable_cpu_attr_groups; | 383 | cpu->dev.groups = hotplugable_cpu_attr_groups; |
384 | error = device_register(&cpu->dev); | 384 | error = device_register(&cpu->dev); |
385 | if (error) | 385 | if (error) { |
386 | put_device(&cpu->dev); | ||
386 | return error; | 387 | return error; |
388 | } | ||
387 | 389 | ||
388 | per_cpu(cpu_sys_devices, num) = &cpu->dev; | 390 | per_cpu(cpu_sys_devices, num) = &cpu->dev; |
389 | register_cpu_under_node(num, cpu_to_node(num)); | 391 | register_cpu_under_node(num, cpu_to_node(num)); |