summaryrefslogtreecommitdiffstats
path: root/drivers/staging/quickstart
diff options
context:
space:
mode:
authorSzymon Janc <szymon@janc.net.pl>2012-01-11 23:22:42 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-02-08 17:16:49 -0800
commitf27a551968bb8780c8a5255c0ea6c3a2fcaf4a47 (patch)
tree38ae528a8b4404fae1bfa57e2aa838535edd7ab5 /drivers/staging/quickstart
parent60955f15d93198ef33081e01f46223c7bd534f1e (diff)
downloadlinux-f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47.tar.gz
linux-f27a551968bb8780c8a5255c0ea6c3a2fcaf4a47.tar.xz
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.c22
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);