• Thomas Gleixner's avatar
    x86: zap invalid and unused pmds in early boot · 31eedd82
    Thomas Gleixner authored
    The early boot code maps KERNEL_TEXT_SIZE (currently 40MB) starting
    from __START_KERNEL_map. The kernel itself only needs _text to _end
    mapped in the high alias. On relocatible kernels the ASM setup code
    adjusts the compile time created high mappings to the relocation. This
    creates invalid pmd entries for negative offsets:
    
    0xffffffff80000000 -> pmd entry: ffffffffff2001e3
    It points outside of the physical address space and is marked present.
    
    This starts at the virtual address __START_KERNEL_map and goes up to
    the point where the first valid physical address (0x0) is mapped.
    
    Zap the mappings before _text and after _end right away in early
    boot. This removes also the invalid entries.
    
    Furthermore it simplifies the range check for high aliases.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    31eedd82
pgtable_64.h 7.6 KB