]> git.baikalelectronics.ru Git - kernel.git/commit
x86/efi: Add efi_fake_mem support for EFI_MEMORY_SP
authorDan Williams <dan.j.williams@intel.com>
Thu, 7 Nov 2019 01:43:26 +0000 (17:43 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 7 Nov 2019 14:44:23 +0000 (15:44 +0100)
commit4007173315f020c1e1fedb6b3d084efedf9db7e5
tree9f99308b4861d2cc74bc1ca61e4c0e3bb5e61943
parenta439792690f394304b3056b619ecca645d29694a
x86/efi: Add efi_fake_mem support for EFI_MEMORY_SP

Given that EFI_MEMORY_SP is platform BIOS policy decision for marking
memory ranges as "reserved for a specific purpose" there will inevitably
be scenarios where the BIOS omits the attribute in situations where it
is desired. Unlike other attributes if the OS wants to reserve this
memory from the kernel the reservation needs to happen early in init. So
early, in fact, that it needs to happen before e820__memblock_setup()
which is a pre-requisite for efi_fake_memmap() that wants to allocate
memory for the updated table.

Introduce an x86 specific efi_fake_memmap_early() that can search for
attempts to set EFI_MEMORY_SP via efi_fake_mem and update the e820 table
accordingly.

The KASLR code that scans the command line looking for user-directed
memory reservations also needs to be updated to consider
"efi_fake_mem=nn@ss:0x40000" requests.

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/admin-guide/kernel-parameters.txt
arch/x86/boot/compressed/kaslr.c
arch/x86/include/asm/efi.h
arch/x86/platform/efi/efi.c
drivers/firmware/efi/Makefile
drivers/firmware/efi/fake_mem.c
drivers/firmware/efi/fake_mem.h [new file with mode: 0644]
drivers/firmware/efi/x86_fake_mem.c [new file with mode: 0644]