linux_dsm_epyc7002/arch/x86/boot/compressed
Arvind Sankar 451286940d x86/kaslr: Initialize mem_limit to the real maximum address
On 64-bit, the kernel must be placed below MAXMEM (64TiB with 4-level
paging or 4PiB with 5-level paging). This is currently not enforced by
KASLR, which thus implicitly relies on physical memory being limited to
less than 64TiB.

On 32-bit, the limit is KERNEL_IMAGE_SIZE (512MiB). This is enforced by
special checks in __process_mem_region().

Initialize mem_limit to the maximum (depending on architecture), instead
of ULLONG_MAX, and make sure the command-line arguments can only
decrease it. This makes the enforcement explicit on 64-bit, and
eliminates the 32-bit specific checks to keep the kernel below 512M.

Check upfront to make sure the minimum address is below the limit before
doing any work.

Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20200727230801.3468620-5-nivedita@alum.mit.edu
2020-07-31 11:08:17 +02:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
acpi.c x86/boot: Fix -Wint-to-pointer-cast build warning 2020-05-04 15:22:16 +02:00
cmdline.c x86/boot: Build the command line parsing code unconditionally 2019-02-01 11:51:01 +01:00
cpuflags.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
early_serial_console.c x86, boot: Don't compile early_serial_console.c when !CONFIG_EARLY_PRINTK 2014-08-17 14:58:24 -07:00
efi_thunk_64.S efi/x86: Drop the special GDT for the EFI thunk 2020-05-24 00:25:15 +02:00
error.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
error.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
head_32.S x86/boot: Correct relocation destination on old linkers 2020-05-19 14:11:22 +02:00
head_64.S efi/x86: Setup stack correctly for efi_pe_entry 2020-06-17 15:28:58 +02:00
kaslr_64.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
kaslr.c x86/kaslr: Initialize mem_limit to the real maximum address 2020-07-31 11:08:17 +02:00
kernel_info.S x86/boot: Introduce setup_indirect 2019-11-12 16:21:15 +01:00
Makefile x86/boot: Don't add the EFI stub to targets 2020-07-19 13:07:11 +02:00
mem_encrypt.S x86/asm: Change all ENTRY+ENDPROC to SYM_FUNC_* 2019-10-18 11:58:33 +02:00
misc.c x86/boot/64: Round memory hole size up to next PMD page 2019-10-11 18:47:23 +02:00
misc.h x86/boot/compressed: Fix debug_puthex() parameter type 2020-03-28 12:14:26 +01:00
mkpiggy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 268 2019-06-05 17:30:29 +02:00
pgtable_64.c x86/boot/compressed/64: Fix missing initialization in find_trampoline_placement() 2019-08-27 10:46:27 +02:00
pgtable.h x86/boot/compressed/64: Set EFER.LME=1 in 32-bit trampoline before returning to long mode 2019-01-29 21:58:59 +01:00
string.c x86/boot: Provide KASAN compatible aliases for string routines 2019-05-24 08:44:16 +02:00
vmlinux.lds.S Misc dependency fixes, plus a documentation update about memory protection keys support. 2020-06-01 13:45:59 -07:00