• D
    x86/boot: Fix KASLR and memmap= collision · f2844249
    Dave Jiang 提交于
    CONFIG_RANDOMIZE_BASE=y relocates the kernel to a random base address.
    
    However it does not take into account the memmap= parameter passed in from
    the kernel command line. This results in the kernel sometimes being put in
    the middle of memmap.
    
    Teach KASLR to not insert the kernel in memmap defined regions. We support
    up to 4 memmap regions: any additional regions will cause KASLR to disable.
    
    The mem_avoid set has been augmented to add up to 4 unusable regions of
    memmaps provided by the user to exclude those regions from the set of valid
    address range to insert the uncompressed kernel image.
    
    The nn@ss ranges will be skipped by the mem_avoid set since it indicates
    that memory is useable.
    Signed-off-by: NDave Jiang <dave.jiang@intel.com>
    Reviewed-by: NThomas Gleixner <tglx@linutronix.de>
    Acked-by: NKees Cook <keescook@chromium.org>
    Acked-by: NBaoquan He <bhe@redhat.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: dan.j.williams@intel.com
    Cc: david@fromorbit.com
    Cc: linux-nvdimm@lists.01.org
    Link: http://lkml.kernel.org/r/148417664156.131935.2248592164852799738.stgit@djiang5-desk3.ch.intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
    f2844249
boot.h 7.9 KB