diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-07-28 15:25:46 +0000 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-07-28 15:25:46 +0000 |
commit | 6124a4e430b64d1577438c8648c59e996d02e73e (patch) | |
tree | 49cfafad785d1c9e403a5b0d755298b9af2c260f /drivers/firmware/google/gsmi.c | |
parent | 8e267f3da5f117d2f1316cf6ddf740f93f1c73aa (diff) | |
parent | 580975d7f48d7d047e22bb0f42adf7557801d8d4 (diff) | |
download | talos-op-linux-6124a4e430b64d1577438c8648c59e996d02e73e.tar.gz talos-op-linux-6124a4e430b64d1577438c8648c59e996d02e73e.zip |
Merge branch 'imx/dt' into next/dt
Diffstat (limited to 'drivers/firmware/google/gsmi.c')
-rw-r--r-- | drivers/firmware/google/gsmi.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/firmware/google/gsmi.c b/drivers/firmware/google/gsmi.c index fa7f0b3e81dd..68810fd1a59d 100644 --- a/drivers/firmware/google/gsmi.c +++ b/drivers/firmware/google/gsmi.c @@ -869,8 +869,6 @@ static __init int gsmi_init(void) goto out_err; } - printk(KERN_INFO "gsmi version " DRIVER_VERSION " loaded\n"); - /* Register in the firmware directory */ ret = -ENOMEM; gsmi_kobj = kobject_create_and_add("gsmi", firmware_kobj); @@ -890,12 +888,13 @@ static __init int gsmi_init(void) ret = sysfs_create_files(gsmi_kobj, gsmi_attrs); if (ret) { printk(KERN_INFO "gsmi: Failed to add attrs"); - goto out_err; + goto out_remove_bin_file; } - if (register_efivars(&efivars, &efivar_ops, gsmi_kobj)) { + ret = register_efivars(&efivars, &efivar_ops, gsmi_kobj); + if (ret) { printk(KERN_INFO "gsmi: Failed to register efivars\n"); - goto out_err; + goto out_remove_sysfs_files; } register_reboot_notifier(&gsmi_reboot_notifier); @@ -903,9 +902,15 @@ static __init int gsmi_init(void) atomic_notifier_chain_register(&panic_notifier_list, &gsmi_panic_notifier); + printk(KERN_INFO "gsmi version " DRIVER_VERSION " loaded\n"); + return 0; - out_err: +out_remove_sysfs_files: + sysfs_remove_files(gsmi_kobj, gsmi_attrs); +out_remove_bin_file: + sysfs_remove_bin_file(gsmi_kobj, &eventlog_bin_attr); +out_err: kobject_put(gsmi_kobj); gsmi_buf_free(gsmi_dev.param_buf); gsmi_buf_free(gsmi_dev.data_buf); @@ -925,6 +930,8 @@ static void __exit gsmi_exit(void) &gsmi_panic_notifier); unregister_efivars(&efivars); + sysfs_remove_files(gsmi_kobj, gsmi_attrs); + sysfs_remove_bin_file(gsmi_kobj, &eventlog_bin_attr); kobject_put(gsmi_kobj); gsmi_buf_free(gsmi_dev.param_buf); gsmi_buf_free(gsmi_dev.data_buf); |