Skip to content

Commit

Permalink
acer-wmi: fix resource reclaim in acer_wmi_init error path
Browse files Browse the repository at this point in the history
This patch fixes the resource reclaim in acer_wmi_init error path.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
  • Loading branch information
Axel Lin authored and Matthew Garrett committed Aug 3, 2010
1 parent e9ec7f3 commit 1c79632
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions drivers/platform/x86/acer-wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1327,31 +1327,48 @@ static int __init acer_wmi_init(void)
"generic video driver\n");
}

if (platform_driver_register(&acer_platform_driver)) {
err = platform_driver_register(&acer_platform_driver);
if (err) {
printk(ACER_ERR "Unable to register platform driver.\n");
goto error_platform_register;
}

acer_platform_device = platform_device_alloc("acer-wmi", -1);
platform_device_add(acer_platform_device);
if (!acer_platform_device) {
err = -ENOMEM;
goto error_device_alloc;
}

err = platform_device_add(acer_platform_device);
if (err)
goto error_device_add;

err = create_sysfs();
if (err)
return err;
goto error_create_sys;

if (wmi_has_guid(WMID_GUID2)) {
interface->debug.wmid_devices = get_wmid_devices();
err = create_debugfs();
if (err)
return err;
goto error_create_debugfs;
}

/* Override any initial settings with values from the commandline */
acer_commandline_init();

return 0;

error_create_debugfs:
remove_sysfs(acer_platform_device);
error_create_sys:
platform_device_del(acer_platform_device);
error_device_add:
platform_device_put(acer_platform_device);
error_device_alloc:
platform_driver_unregister(&acer_platform_driver);
error_platform_register:
return -ENODEV;
return err;
}

static void __exit acer_wmi_exit(void)
Expand Down

0 comments on commit 1c79632

Please sign in to comment.