Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "ACPI: sleep: Put the FACS table after using it"

Commit 95722237cb2a ("ACPI: sleep: Put the FACS table after using it")
puts the FACS table during initialization.

But the hardware signature bits in the FACS table need to be accessed,
after every hibernation, to compare with the original hardware
signature.

So there is no reason to release the FACS table mapping after
initialization.

This reverts commit 95722237cb2ae4f7b73471058cdb19e8f4057c93.

An alternative solution is to use acpi_gbl_FACS variable instead, which
is mapped by the ACPICA core and never released.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=212277
Reported-by: Stephan Hohe <sth.dev@tejp.de>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Cc: 5.8+ <stable@vger.kernel.org> # 5.8+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Zhang Rui and committed by
Rafael J. Wysocki
f1ffa9d4 614124be

+1 -3
+1 -3
drivers/acpi/sleep.c
··· 1009 1009 return; 1010 1010 1011 1011 acpi_get_table(ACPI_SIG_FACS, 1, (struct acpi_table_header **)&facs); 1012 - if (facs) { 1012 + if (facs) 1013 1013 s4_hardware_signature = facs->hardware_signature; 1014 - acpi_put_table((struct acpi_table_header *)facs); 1015 - } 1016 1014 } 1017 1015 #else /* !CONFIG_HIBERNATION */ 1018 1016 static inline void acpi_sleep_hibernate_setup(void) {}