]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
x86/ACPI: Preserve ACPI-table override during hibernation
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tue, 29 Mar 2022 13:33:52 +0000 (15:33 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 13 Apr 2022 15:01:14 +0000 (17:01 +0200)
commit84958f38d897f85b34036356f64e908e4754170f
treee174e2490eb3a07973bd50610ffe67973b635c09
parent467df4cfdc10cb497ac8a977458e50b8266f915f
x86/ACPI: Preserve ACPI-table override during hibernation

When overriding NHLT ACPI-table tests show that on some platforms
there is problem that NHLT contains garbage after hibernation/resume
cycle.

Problem stems from the fact that ACPI override performs early memory
allocation using memblock_phys_alloc_range() in
memblock_phys_alloc_range(). This memory block is later being marked as
ACPI memory block in arch_reserve_mem_area(). Later when memory areas
are considered for hibernation it is being marked as nosave in
e820__register_nosave_regions().

Fix this by marking ACPI override memory area as ACPI NVS
(Non-Volatile-Sleeping), which according to specification needs to be
saved on entering S4 and restored when leaving and is implemented as
such in kernel.

Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/kernel/acpi/boot.c