]> git.baikalelectronics.ru Git - kernel.git/commit
efi/x86: Avoid RWX mappings for all of DRAM
authorArd Biesheuvel <ardb@kernel.org>
Mon, 13 Jan 2020 17:22:38 +0000 (18:22 +0100)
committerIngo Molnar <mingo@kernel.org>
Mon, 20 Jan 2020 07:13:01 +0000 (08:13 +0100)
commita1f68a7f87c35dbe38a5561eff6e16dfb92076f4
treef5601b55d9c54358e5baf3d0b87f64b96b8cb893
parent69540b22bc34e80b5e9b799330a80b4e820763eb
efi/x86: Avoid RWX mappings for all of DRAM

The EFI code creates RWX mappings for all memory regions that are
occupied after the stub completes, and in the mixed mode case, it
even creates RWX mappings for all of the remaining DRAM as well.

Let's try to avoid this, by setting the NX bit for all memory
regions except the ones that are marked as EFI runtime services
code [which means text+rodata+data in practice, so we cannot mark
them read-only right away]. For cases of buggy firmware where boot
services code is called during SetVirtualAddressMap(), map those
regions with exec permissions as well - they will be unmapped in
efi_free_boot_services().

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200113172245.27925-7-ardb@kernel.org
arch/x86/platform/efi/efi_64.c