ACPI: APEI: Put the error injection table for error path and module exit
The mapped error injection table will be used after einj_init() for debugfs, but it should be released for module exit and error path of einj_init(). Signed-off-by: Hanjun Guo <guohanjun@huawei.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
3d995f88ad
commit
541156a38f
|
@ -692,7 +692,7 @@ static int __init einj_init(void)
|
||||||
rc = einj_check_table(einj_tab);
|
rc = einj_check_table(einj_tab);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
pr_warn(FW_BUG "Invalid EINJ table.\n");
|
pr_warn(FW_BUG "Invalid EINJ table.\n");
|
||||||
return -EINVAL;
|
goto err_put_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = -ENOMEM;
|
rc = -ENOMEM;
|
||||||
|
@ -760,6 +760,8 @@ err_release:
|
||||||
err_fini:
|
err_fini:
|
||||||
apei_resources_fini(&einj_resources);
|
apei_resources_fini(&einj_resources);
|
||||||
debugfs_remove_recursive(einj_debug_dir);
|
debugfs_remove_recursive(einj_debug_dir);
|
||||||
|
err_put_table:
|
||||||
|
acpi_put_table((struct acpi_table_header *)einj_tab);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -780,6 +782,7 @@ static void __exit einj_exit(void)
|
||||||
apei_resources_release(&einj_resources);
|
apei_resources_release(&einj_resources);
|
||||||
apei_resources_fini(&einj_resources);
|
apei_resources_fini(&einj_resources);
|
||||||
debugfs_remove_recursive(einj_debug_dir);
|
debugfs_remove_recursive(einj_debug_dir);
|
||||||
|
acpi_put_table((struct acpi_table_header *)einj_tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(einj_init);
|
module_init(einj_init);
|
||||||
|
|
Loading…
Reference in New Issue