diff options
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/dcdbas.c | 5 | ||||
-rw-r--r-- | drivers/firmware/dmi-id.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/firmware/dcdbas.c b/drivers/firmware/dcdbas.c index aa9bc9e980e1..69ad529d92fb 100644 --- a/drivers/firmware/dcdbas.c +++ b/drivers/firmware/dcdbas.c @@ -634,9 +634,6 @@ static void __exit dcdbas_exit(void) * before platform_device_unregister */ unregister_reboot_notifier(&dcdbas_reboot_nb); - smi_data_buf_free(); - platform_device_unregister(dcdbas_pdev); - platform_driver_unregister(&dcdbas_driver); /* * We have to free the buffer here instead of dcdbas_remove @@ -645,6 +642,8 @@ static void __exit dcdbas_exit(void) * released. */ smi_data_buf_free(); + platform_device_unregister(dcdbas_pdev); + platform_driver_unregister(&dcdbas_driver); } module_init(dcdbas_init); diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c index a777a35381d2..94a58a082b99 100644 --- a/drivers/firmware/dmi-id.c +++ b/drivers/firmware/dmi-id.c @@ -229,10 +229,12 @@ static int __init dmi_id_init(void) ret = device_register(dmi_dev); if (ret) - goto fail_class_unregister; + goto fail_free_dmi_dev; return 0; +fail_free_dmi_dev: + kfree(dmi_dev); fail_class_unregister: class_unregister(&dmi_class); |