mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
451286940d
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 |
||
---|---|---|
.. | ||
.gitignore | ||
acpi.c | ||
cmdline.c | ||
cpuflags.c | ||
early_serial_console.c | ||
efi_thunk_64.S | ||
error.c | ||
error.h | ||
head_32.S | ||
head_64.S | ||
kaslr_64.c | ||
kaslr.c | ||
kernel_info.S | ||
Makefile | ||
mem_encrypt.S | ||
misc.c | ||
misc.h | ||
mkpiggy.c | ||
pgtable_64.c | ||
pgtable.h | ||
string.c | ||
vmlinux.lds.S |