Skip to content
  1. Feb 19, 2008
    • 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
    • Thomas Gleixner's avatar
      x86: CPA, fix alias checks · c31c7d48
      Thomas Gleixner authored
      
      
      c_p_a() did not discover all aliases correctly. (such as when called
      on vmalloc()-ed areas or ioremap()-ed areas)
      
      Push the alias checks to the lower, physical level and consistently
      discover all aliases that might exist: the low direct mappings and
      the high linear kernel-text mappings (on 64-bit).
      
      Thanks to Andi Kleen for pointing out that this was buggy.
      
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c31c7d48
  2. Feb 16, 2008
  3. Feb 15, 2008