The previous patch introduces two new functions: acpi_tb_root_table_install() and acpi_tb_root_table_override(), which work just the same as acpi_tb_parse_root_table() if they are called in sequence. In order to split acpi_initialize_tables(), call thes two functions in acpi_initialize_tables(). This will keep acpi_initialize_tables() works as before. Signed-off-by: Tang Chen <tangchen@xxxxxxxxxxxxxx> Reviewed-by: Zhang Yanfei <zhangyanfei@xxxxxxxxxxxxxx> --- drivers/acpi/acpica/actables.h | 2 ++ drivers/acpi/acpica/tbxface.c | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/acpica/actables.h b/drivers/acpi/acpica/actables.h index 7755e91..641796e 100644 --- a/drivers/acpi/acpica/actables.h +++ b/drivers/acpi/acpica/actables.h @@ -120,6 +120,8 @@ void acpi_tb_install_table(acpi_physical_address address, char *signature, u32 table_index); +acpi_status acpi_tb_root_table_install(acpi_physical_address rsdp_address); +void acpi_tb_root_table_override(void); acpi_status acpi_tb_parse_root_table(acpi_physical_address rsdp_address); #endif /* __ACTABLES_H__ */ diff --git a/drivers/acpi/acpica/tbxface.c b/drivers/acpi/acpica/tbxface.c index ad11162..98e4cad 100644 --- a/drivers/acpi/acpica/tbxface.c +++ b/drivers/acpi/acpica/tbxface.c @@ -143,8 +143,13 @@ acpi_initialize_tables(struct acpi_table_desc * initial_table_array, * Root Table Array. This array contains the information of the RSDT/XSDT * in a common, more useable format. */ - status = acpi_tb_parse_root_table(rsdp_address); - return_ACPI_STATUS(status); + status = acpi_tb_root_table_install(rsdp_address); + if (ACPI_FAILURE(status)) + return_ACPI_STATUS(status); + + acpi_tb_root_table_override(); + + return_ACPI_STATUS(AE_OK); } /******************************************************************************* -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html