diff options
author | Arvind Sankar <nivedita@alum.mit.edu> | 2020-07-27 19:07:57 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-07-31 11:08:17 +0200 |
commit | 451286940d95778e83fa7f97006316d995b4c4a8 (patch) | |
tree | 2ebe563cfb05f8feeebb09720aa11c96b447989b /tools/perf/util/scripting-engines/trace-event-python.c | |
parent | 08705365560a352d3f5b4f1f52270b4d4ff7911e (diff) |
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
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
0 files changed, 0 insertions, 0 deletions