diff options
author | Szymon Janc <szymon@janc.net.pl> | 2012-01-11 23:22:42 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-02-08 17:16:49 -0800 |
commit | f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47 (patch) | |
tree | 38ae528a8b4404fae1bfa57e2aa838535edd7ab5 /drivers/staging/quickstart | |
parent | 60955f15d93198ef33081e01f46223c7bd534f1e (diff) | |
download | linux-f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47.tar.gz linux-f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47.tar.bz2 linux-f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47.zip |
Staging: quickstart: Cleanup quickstart_acpi_add
Signed-off-by: Szymon Janc <szymon@janc.net.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/quickstart')
-rw-r--r-- | drivers/staging/quickstart/quickstart.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c index de98e18f9b4c..97e62e9faf60 100644 --- a/drivers/staging/quickstart/quickstart.c +++ b/drivers/staging/quickstart/quickstart.c @@ -262,29 +262,29 @@ static int quickstart_acpi_config(struct quickstart_acpi *quickstart, char *bid) static int quickstart_acpi_add(struct acpi_device *device) { - int ret = 0; - acpi_status status = AE_OK; - struct quickstart_acpi *quickstart = NULL; + int ret; + acpi_status status; + struct quickstart_acpi *quickstart; if (!device) return -EINVAL; - quickstart = kzalloc(sizeof(struct quickstart_acpi), GFP_KERNEL); + quickstart = kzalloc(sizeof(*quickstart), GFP_KERNEL); if (!quickstart) return -ENOMEM; quickstart->device = device; + strcpy(acpi_device_name(device), QUICKSTART_ACPI_DEVICE_NAME); strcpy(acpi_device_class(device), QUICKSTART_ACPI_CLASS); device->driver_data = quickstart; /* Add button to list and initialize some stuff */ ret = quickstart_acpi_config(quickstart, acpi_device_bid(device)); - if (ret) + if (ret < 0) goto fail_config; - status = acpi_install_notify_handler(device->handle, - ACPI_ALL_NOTIFY, + status = acpi_install_notify_handler(device->handle, ACPI_ALL_NOTIFY, quickstart_acpi_notify, quickstart); if (ACPI_FAILURE(status)) { @@ -293,10 +293,16 @@ static int quickstart_acpi_add(struct acpi_device *device) goto fail_installnotify; } - quickstart_acpi_ghid(quickstart); + ret = quickstart_acpi_ghid(quickstart); + if (ret < 0) + goto fail_ghid; return 0; +fail_ghid: + acpi_remove_notify_handler(device->handle, ACPI_ALL_NOTIFY, + quickstart_acpi_notify); + fail_installnotify: quickstart_btnlst_del(quickstart->btn); |