|
@@ -3160,6 +3160,8 @@ static struct acpi_driver acpi_nfit_driver = {
|
|
|
|
|
|
static __init int nfit_init(void)
|
|
|
{
|
|
|
+ int ret;
|
|
|
+
|
|
|
BUILD_BUG_ON(sizeof(struct acpi_table_nfit) != 40);
|
|
|
BUILD_BUG_ON(sizeof(struct acpi_nfit_system_address) != 56);
|
|
|
BUILD_BUG_ON(sizeof(struct acpi_nfit_memory_map) != 48);
|
|
@@ -3187,8 +3189,14 @@ static __init int nfit_init(void)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
nfit_mce_register();
|
|
|
+ ret = acpi_bus_register_driver(&acpi_nfit_driver);
|
|
|
+ if (ret) {
|
|
|
+ nfit_mce_unregister();
|
|
|
+ destroy_workqueue(nfit_wq);
|
|
|
+ }
|
|
|
+
|
|
|
+ return ret;
|
|
|
|
|
|
- return acpi_bus_register_driver(&acpi_nfit_driver);
|
|
|
}
|
|
|
|
|
|
static __exit void nfit_exit(void)
|