1. 19 2月, 2008 2 次提交
    • T
      x86: zap invalid and unused pmds in early boot · 31eedd82
      Thomas Gleixner 提交于
      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: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      31eedd82
    • T
      x86: CPA, fix alias checks · c31c7d48
      Thomas Gleixner 提交于
      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: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c31c7d48
  2. 16 2月, 2008 18 次提交
  3. 15 2月, 2008 20 次提交