Commit 3945ac36 authored by Henrique de Moraes Holschuh's avatar Henrique de Moraes Holschuh Committed by Len Brown

ACPI: ibm-acpi: cleanup init and exit paths

Fix a small memory leak on module removal, and other
assorted minor cleanups on the module init codepath.
Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent a3c94e5c
...@@ -496,6 +496,10 @@ static int ibm_acpi_driver_init(void) ...@@ -496,6 +496,10 @@ static int ibm_acpi_driver_init(void)
printk(IBM_INFO "%s v%s\n", IBM_DESC, IBM_VERSION); printk(IBM_INFO "%s v%s\n", IBM_DESC, IBM_VERSION);
printk(IBM_INFO "%s\n", IBM_URL); printk(IBM_INFO "%s\n", IBM_URL);
if (ibm_thinkpad_ec_found)
printk(IBM_INFO "ThinkPad EC firmware %s\n",
ibm_thinkpad_ec_found);
return 0; return 0;
} }
...@@ -2617,7 +2621,7 @@ static void __init ibm_handle_init(char *name, ...@@ -2617,7 +2621,7 @@ static void __init ibm_handle_init(char *name,
ibm_handle_init(#object, &object##_handle, *object##_parent, \ ibm_handle_init(#object, &object##_handle, *object##_parent, \
object##_paths, ARRAY_SIZE(object##_paths), &object##_path) object##_paths, ARRAY_SIZE(object##_paths), &object##_path)
static int set_ibm_param(const char *val, struct kernel_param *kp) static int __init set_ibm_param(const char *val, struct kernel_param *kp)
{ {
unsigned int i; unsigned int i;
...@@ -2659,7 +2663,8 @@ static void acpi_ibm_exit(void) ...@@ -2659,7 +2663,8 @@ static void acpi_ibm_exit(void)
for (i = ARRAY_SIZE(ibms) - 1; i >= 0; i--) for (i = ARRAY_SIZE(ibms) - 1; i >= 0; i--)
ibm_exit(&ibms[i]); ibm_exit(&ibms[i]);
remove_proc_entry(IBM_DIR, acpi_root_dir); if (proc_dir)
remove_proc_entry(IBM_DIR, acpi_root_dir);
if (ibm_thinkpad_ec_found) if (ibm_thinkpad_ec_found)
kfree(ibm_thinkpad_ec_found); kfree(ibm_thinkpad_ec_found);
...@@ -2710,9 +2715,6 @@ static int __init acpi_ibm_init(void) ...@@ -2710,9 +2715,6 @@ static int __init acpi_ibm_init(void)
/* Models with newer firmware report the EC in DMI */ /* Models with newer firmware report the EC in DMI */
ibm_thinkpad_ec_found = check_dmi_for_ec(); ibm_thinkpad_ec_found = check_dmi_for_ec();
if (ibm_thinkpad_ec_found)
printk(IBM_INFO "ThinkPad EC firmware %s\n",
ibm_thinkpad_ec_found);
/* these handles are not required */ /* these handles are not required */
IBM_HANDLE_INIT(vid); IBM_HANDLE_INIT(vid);
...@@ -2742,6 +2744,7 @@ static int __init acpi_ibm_init(void) ...@@ -2742,6 +2744,7 @@ static int __init acpi_ibm_init(void)
proc_dir = proc_mkdir(IBM_DIR, acpi_root_dir); proc_dir = proc_mkdir(IBM_DIR, acpi_root_dir);
if (!proc_dir) { if (!proc_dir) {
printk(IBM_ERR "unable to create proc dir %s", IBM_DIR); printk(IBM_ERR "unable to create proc dir %s", IBM_DIR);
acpi_ibm_exit();
return -ENODEV; return -ENODEV;
} }
proc_dir->owner = THIS_MODULE; proc_dir->owner = THIS_MODULE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment