[PATCH 0/2] Determine kernel text mapping size at runtime for x86_64

From: Baoquan He
Date: Thu Dec 08 2016 - 02:56:23 EST


Dave Anderson ever told in Crash utility he makes judgement whether it's
a kaslr kernel by size of KERNEL_IMAGE_SIZE. As long as it's 1G, it's
recognized as kaslr. Then the current upstream kernel has a wrong behaviour,
it sets KERNEL_IMAGE_SIZE as 1G as long as CONFIG_RANDOMIZE_BASE is enabled,
though people specify "nokaslr" into cmdline to disable kaslr explicitly.

So in this patchset, made changes to determine the size of kernel text mapping
area at runtime. If "nokaslr" specified, kernel mapping size is 512M though
CONFIG_RANDOMIZE_BASE is enabled.

Baoquan He (2):
x86/64: Make kernel text mapping always take one whole page table in
early boot code
x86/KASLR/64: Determine kernel text mapping size at runtime

arch/x86/boot/compressed/kaslr.c | 15 ++++++++++-----
arch/x86/include/asm/kaslr.h | 1 +
arch/x86/include/asm/page_64_types.h | 20 ++++++++++++--------
arch/x86/include/asm/pgtable_64_types.h | 2 +-
arch/x86/kernel/head64.c | 11 ++++++-----
arch/x86/kernel/head_64.S | 16 +++++++++-------
arch/x86/mm/dump_pagetables.c | 3 ++-
arch/x86/mm/init_64.c | 2 +-
arch/x86/mm/physaddr.c | 6 +++---
9 files changed, 45 insertions(+), 31 deletions(-)

--
2.5.5