[PATCH 09/32] ACPICA: Tables: Fix an issue that ACPI initialization is blocked due to no FACS.

Lv Zheng
2015-06-19T03:40:03Z

ACPICA commit ebd544ed24c5a4faba11f265e228b7a821a729f5

This patch fixes an issue that when FACS tables do not exist, ACPI
initialization cannot proceed. ACPICA BZ 1122. Lv Zheng.

Link: https://bugs.acpica.org/show_bug.cgi?id=1122
Link: https://github.com/acpica/acpica/commit/ebd544ed
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
---
drivers/acpi/acpica/tbutils.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c
index 6a6c5be..2bb6a11 100644
--- a/drivers/acpi/acpica/tbutils.c
+++ b/drivers/acpi/acpica/tbutils.c
@@ -84,18 +84,16 @@ acpi_status acpi_tb_initialize_facs(void)
ACPI_CAST_INDIRECT_PTR(struct
acpi_table_header,
&acpi_gbl_facs64));
- if (!acpi_gbl_facs32 && !acpi_gbl_facs64) {
- return (AE_NO_MEMORY);
- }

- if (acpi_gbl_use32_bit_facs_addresses) {
- acpi_gbl_FACS =
- acpi_gbl_facs32 ? acpi_gbl_facs32 : acpi_gbl_facs64;
- } else {
- acpi_gbl_FACS =
- acpi_gbl_facs64 ? acpi_gbl_facs64 : acpi_gbl_facs32;
+ if (acpi_gbl_facs64
+ && (!acpi_gbl_facs32 || !acpi_gbl_use32_bit_facs_addresses)) {
+ acpi_gbl_FACS = acpi_gbl_facs64;
+ } else if (acpi_gbl_facs32) {
+ acpi_gbl_FACS = acpi_gbl_facs32;
}

+ /* If there is no FACS, just continue. There was already an error msg */
+
return (AE_OK);
}
#endif /* !ACPI_REDUCED_HARDWARE */
--
1.7.10