diff options
author | Kristen Carlson Accardi <kristen.c.accardi@intel.com> | 2007-05-09 15:04:24 -0700 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-05-10 03:30:37 -0400 |
commit | 38ff4ffc039ba5a5878f2dcbb03d87c3a1f02f1b (patch) | |
tree | 16e0654118e6950dd8cdb0b45b8306fe4a03d02e | |
parent | de5603748af8bf7deac403e6ba92887f8d18e812 (diff) | |
download | op-kernel-dev-38ff4ffc039ba5a5878f2dcbb03d87c3a1f02f1b.zip op-kernel-dev-38ff4ffc039ba5a5878f2dcbb03d87c3a1f02f1b.tar.gz |
ACPI: dock: cleanup the uid patch
Make uid sysfs file error path free memory, and cleanup sysfs file
when removing driver. Also fix CodingStyle violations.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Cc: Illya A. Volynets-Evenbakh <ilya@total-knowledge.com>
Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r-- | drivers/acpi/dock.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c index 4546bf8..9ddc3f1 100644 --- a/drivers/acpi/dock.c +++ b/drivers/acpi/dock.c @@ -675,16 +675,15 @@ static ssize_t show_dock_uid(struct device *dev, struct device_attribute *attr, char *buf) { unsigned long lbuf; - acpi_status status = acpi_evaluate_integer(dock_station->handle, "_UID", NULL, &lbuf); - if(ACPI_FAILURE(status)) { + acpi_status status = acpi_evaluate_integer(dock_station->handle, + "_UID", NULL, &lbuf); + if (ACPI_FAILURE(status)) return 0; - } + return snprintf(buf, PAGE_SIZE, "%lx\n", lbuf); } DEVICE_ATTR(uid, S_IRUGO, show_dock_uid, NULL); - - /** * dock_add - add a new dock station * @handle: the dock station handle @@ -736,6 +735,8 @@ static int dock_add(acpi_handle handle) ret = device_create_file(&dock_device.dev, &dev_attr_uid); if (ret) { printk("Error %d adding sysfs file\n", ret); + device_remove_file(&dock_device.dev, &dev_attr_docked); + device_remove_file(&dock_device.dev, &dev_attr_undock); platform_device_unregister(&dock_device); kfree(dock_station); return ret; @@ -775,6 +776,7 @@ dock_add_err: dock_add_err_unregister: device_remove_file(&dock_device.dev, &dev_attr_docked); device_remove_file(&dock_device.dev, &dev_attr_undock); + device_remove_file(&dock_device.dev, &dev_attr_uid); platform_device_unregister(&dock_device); kfree(dock_station); return ret; @@ -806,6 +808,7 @@ static int dock_remove(void) /* cleanup sysfs */ device_remove_file(&dock_device.dev, &dev_attr_docked); device_remove_file(&dock_device.dev, &dev_attr_undock); + device_remove_file(&dock_device.dev, &dev_attr_uid); platform_device_unregister(&dock_device); /* free dock station memory */ |