]> 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)
commit6e9af1046a84fe133faf99bc0b0e6238a63c2413
treef5601b55d9c54358e5baf3d0b87f64b96b8cb893
parent16d6def9044522aa442aaa02255d643cab835c36
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