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>
        rc = einj_check_table(einj_tab);
        if (rc) {
                pr_warn(FW_BUG "Invalid EINJ table.\n");
-               return -EINVAL;
+               goto err_put_table;
        }
 
        rc = -ENOMEM;
 err_fini:
        apei_resources_fini(&einj_resources);
        debugfs_remove_recursive(einj_debug_dir);
+err_put_table:
+       acpi_put_table((struct acpi_table_header *)einj_tab);
 
        return rc;
 }
        apei_resources_release(&einj_resources);
        apei_resources_fini(&einj_resources);
        debugfs_remove_recursive(einj_debug_dir);
+       acpi_put_table((struct acpi_table_header *)einj_tab);
 }
 
 module_init(einj_init);