linux/arch/x86/kernel
Thomas Gleixner 31eedd823c x86: zap invalid and unused pmds in early boot
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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-02-18 20:54:14 +01:00
..
acpi ACPI, cpuidle: Clarify C-state description in sysfs 2008-02-14 00:09:55 -05:00
cpu x86: sparse warning in therm_throt.c 2008-02-09 23:24:08 +01:00
.gitignore
Makefile x86 PM: move 64-bit hibernation files to arch/x86/power 2008-02-09 23:24:09 +01:00
alternative.c x86: fix up alternatives with lockdep enabled 2008-01-30 13:33:24 +01:00
aperture_64.c x86: change aper valid checking sequence 2008-01-30 13:33:39 +01:00
apic_32.c x86: don't disable the APIC if it hasn't been mapped yet 2008-01-30 13:33:17 +01:00
apic_64.c x86: change bios_cpu_apicid to percpu data variable fixup 2008-01-30 13:33:21 +01:00
apm_32.c x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
asm-offsets.c
asm-offsets_32.c x86: unify struct desc_ptr 2008-01-30 13:31:12 +01:00
asm-offsets_64.c x86: add asm_offset PARAVIRT constants 2008-01-30 13:33:19 +01:00
audit_64.c
bootflag.c x86: coding style cleanup for kernel/bootflag.c 2008-01-30 13:32:31 +01:00
bugs_64.c x86, 32-bit: trim memory not covered by wb mtrrs 2008-01-30 13:33:18 +01:00
cpuid.c x86: cpuid, msr: use inode mutex instead of big kernel lock 2008-02-04 16:47:59 +01:00
crash.c x86: disable hpet legacy replacement for kdump 2007-12-03 17:17:10 +01:00
crash_dump_32.c
crash_dump_64.c
doublefault_32.c x86: unify tss_struct 2008-01-30 13:31:31 +01:00
ds.c x86: fix small sparse warning 2008-01-31 22:05:47 +01:00
e820_32.c x86_32: trim memory by updating e820 2008-01-30 13:33:32 +01:00
e820_64.c x86_64: make bootmap_start page align v6 2008-02-01 17:49:41 +01:00
early-quirks.c x86: fix section mismatch warning in early-quirks.c 2008-01-30 13:33:37 +01:00
early_printk.c x86: make early_console static in early_printk.c 2008-02-01 17:49:42 +01:00
efi.c x86: EFI set_memory_x()/set_memory_uc() fixes 2008-02-14 23:30:20 +01:00
efi_32.c x86: fixes some bugs about EFI memory map handling 2008-01-30 13:34:10 +01:00
efi_64.c x86: EFI runtime code mapping enhancement 2008-02-13 16:20:35 +01:00
efi_stub_32.S
efi_stub_64.S x86: EFI runtime service support 2008-01-30 13:31:19 +01:00
entry_32.S x86: fixup more paravirt fallout 2008-02-09 23:24:08 +01:00
entry_64.S x86: fixup more paravirt fallout 2008-02-09 23:24:08 +01:00
genapic_64.c x86: cleanup x86_cpu_to_apicid references 2008-01-30 13:33:11 +01:00
genapic_flat_64.c
geode_32.c x86: GEODE: MFGPT: Use "just-in-time" detection for the MFGPT timers 2008-02-09 23:24:08 +01:00
head64.c x86: zap invalid and unused pmds in early boot 2008-02-18 20:54:14 +01:00
head_32.S x86: construct 32-bit boot time page tables in native format. 2008-02-09 23:24:09 +01:00
head_64.S x86: zap invalid and unused pmds in early boot 2008-02-18 20:54:14 +01:00
hpet.c rtc: use the IRQ callback interface in (old) RTC driver 2008-01-30 13:33:31 +01:00
i386_ksyms_32.c x86: unexport __{read,write}_lock_failed 2008-01-30 13:30:29 +01:00
i387.c x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
i8237.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
i8253.c x86: pit_clockevent can be static 2008-02-13 16:20:35 +01:00
i8259_32.c x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
i8259_64.c x86: provide a native_init_IRQ function on 64-bit 2008-01-30 13:33:19 +01:00
init_task.c x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
io_apic_32.c arch/x86/kernel/io_apic_{64,32}.c: use time_before 2008-01-30 13:32:19 +01:00
io_apic_64.c arch/x86/kernel/io_apic_{64,32}.c: use time_before 2008-01-30 13:32:19 +01:00
io_delay.c x86: add DMI quirk for io-delay hangs on Compaq Presario V6000 laptops 2008-01-30 13:30:05 +01:00
ioport.c x86: refactor ioport unification 2008-01-30 13:33:10 +01:00
irq_32.c x86: remove all definitions with fastcall 2008-01-30 13:31:17 +01:00
irq_64.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
k8.c
kdebugfs.c x86 boot : export boot_params via debugfs for debugging 2008-01-30 13:32:51 +01:00
kprobes.c x86: remove unneded casts 2008-01-30 13:33:23 +01:00
ldt.c x86: cleanup - eliminate numbers in LDT allocation code 2008-02-04 16:48:03 +01:00
machine_kexec_32.c vmcoreinfo: fix the configuration dependencies 2008-02-07 08:42:25 -08:00
machine_kexec_64.c vmcoreinfo: fix the configuration dependencies 2008-02-07 08:42:25 -08:00
mca_32.c
mfgpt_32.c x86: GEODE: MFGPT: fix typo in printk in mfgpt_timer_setup 2008-02-09 23:24:08 +01:00
microcode.c x86: fix section mismatch warnings when referencing notifiers 2008-02-01 17:49:42 +01:00
module_32.c
module_64.c
mpparse_32.c Introduce flags for reserve_bootmem() 2008-02-07 08:42:25 -08:00
mpparse_64.c x86: fix section mismatch warning in acpi/boot.c 2008-01-30 13:33:37 +01:00
msr.c x86: cpuid, msr: use inode mutex instead of big kernel lock 2008-02-04 16:47:59 +01:00
nmi_32.c x86: clean up nmi_32/64.c 2008-01-30 13:30:33 +01:00
nmi_64.c x86: clean up nmi_32/64.c 2008-01-30 13:30:33 +01:00
numaq_32.c x86: convert TSC disabling to generic cpuid disable bitmap 2008-01-30 13:33:20 +01:00
paravirt.c x86: fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3 2008-01-30 13:33:20 +01:00
paravirt_patch_32.c x86: move patching code to arch-specific file. 2008-01-30 13:32:10 +01:00
paravirt_patch_64.c x86: add stringify header 2008-01-30 13:33:19 +01:00
pci-calgary_64.c iommu sg: x86: convert calgary IOMMU to use the IOMMU helper 2008-02-05 09:44:11 -08:00
pci-dma_32.c
pci-dma_64.c x86: pci-dma_64.c: cleanups 2008-01-30 13:30:31 +01:00
pci-gart_64.c x86: fix gart_iommu_init() 2008-02-14 23:30:20 +01:00
pci-nommu_64.c x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
pci-swiotlb_64.c x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
pcspeaker.c
pmtimer_64.c x86: move pmtmr related declarations 2008-01-30 13:30:18 +01:00
process_32.c aout: remove unnecessary inclusions of {asm, linux}/a.out.h 2008-02-08 09:22:30 -08:00
process_64.c aout: remove unnecessary inclusions of {asm, linux}/a.out.h 2008-02-08 09:22:30 -08:00
ptrace.c x86 ptrace: disallow null cs/ss 2008-02-06 22:39:44 +01:00
quirks.c Use proper abstractions in quirk_intel_irqbalance 2008-02-11 08:15:03 -08:00
reboot.c x86: fixup machine_ops reboot_{32|64}.c unification fallout 2008-02-13 16:20:35 +01:00
reboot_fixups_32.c x86: add the RDC machine specific reboot fixup 2008-01-30 13:33:36 +01:00
relocate_kernel_32.S
relocate_kernel_64.S
rtc.c x86: fix sched_clock() 2008-01-30 13:32:40 +01:00
scx200_32.c x86: fix sparse warning in kernel/scx200_32.c 2008-01-31 22:05:45 +01:00
setup64.c x86: export __supported_pte_mask 2008-01-30 13:33:24 +01:00
setup_32.c x86: construct 32-bit boot time page tables in native format. 2008-02-09 23:24:09 +01:00
setup_64.c aout: remove unnecessary inclusions of {asm, linux}/a.out.h 2008-02-08 09:22:30 -08:00
sigframe_32.h
signal_32.c x86: remove unneded casts 2008-01-30 13:33:23 +01:00
signal_64.c x86: print which shared library/executable faulted in segfault etc. messages v3 2008-01-30 13:33:18 +01:00
smp_32.c x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
smp_64.c x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
smpboot_32.c calibrate_delay() must be __cpuinit 2008-02-06 10:41:08 -08:00
smpboot_64.c x86: silence section mismatch warning in smpboot_64.c 2008-02-01 17:49:41 +01:00
smpcommon_32.c x86: change write_gdt_entry signature. 2008-01-30 13:31:13 +01:00
srat_32.c Merge branches 'release', 'bugzilla-6217', 'bugzilla-6629', 'bugzilla-6933', 'bugzilla-7186', 'bugzilla-8269', 'bugzilla-8570', 'bugzilla-9139', 'bugzilla-9277', 'bugzilla-9341', 'bugzilla-9444', 'bugzilla-9614', 'bugzilla-9643' and 'bugzilla-9644' into release 2008-02-07 03:09:43 -05:00
stacktrace.c x86: remove unneded casts 2008-01-30 13:33:23 +01:00
step.c x86: remove last user of get_segment_eip 2008-01-30 13:33:12 +01:00
summit_32.c
sys_i386_32.c
sys_x86_64.c x86: PIE executable randomization, checkpatch fixes 2008-01-30 13:31:07 +01:00
syscall_64.c
syscall_table_32.S timerfd: wire the new timerfd API to the x86 family 2008-02-05 09:44:07 -08:00
tce_64.c
test_nx.c x86: mark the .rodata section also NX 2008-02-06 22:39:45 +01:00
test_rodata.c x86: include proper prototypes for rodata_test 2008-02-14 23:30:20 +01:00
time_32.c x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
time_64.c time: fix typo in comments 2008-02-08 09:22:29 -08:00
tls.c x86: x86 user_regset TLS 2008-01-30 13:31:52 +01:00
tls.h x86: x86 user_regset TLS 2008-01-30 13:31:52 +01:00
topology.c x86: fix sparse warning in topology.c 2008-02-09 23:24:08 +01:00
trampoline_32.S x86: remove misleading comments in trampoline_*.S 2008-02-04 16:48:01 +01:00
trampoline_64.S x86: remove misleading comments in trampoline_*.S 2008-02-04 16:48:01 +01:00
traps_32.c x86: fix sparse error in traps_32.c 2008-02-06 22:39:44 +01:00
traps_64.c x86: fix "BUG: sleeping function called from invalid context" in print_vma_addr() 2008-02-14 23:30:19 +01:00
tsc_32.c x86: convert TSC disabling to generic cpuid disable bitmap 2008-01-30 13:33:20 +01:00
tsc_64.c x86: export check_tsc_unstable 2008-01-30 13:33:24 +01:00
tsc_sync.c x86: add warning to check_tsc_warp() 2008-01-30 13:33:24 +01:00
verify_cpu_64.S
vm86_32.c arch/x86/: spelling fixes 2008-01-30 13:31:42 +01:00
vmi_32.c x86: VMI fix 2008-02-04 16:47:54 +01:00
vmiclock_32.c x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
vmlinux.lds.S
vmlinux_32.lds.S x86: make arch/x86/kernel/acpi/wakeup_32.S use a separate 2008-01-30 13:32:50 +01:00
vmlinux_64.lds.S x86: provide __parainstructions section 2008-01-30 13:33:19 +01:00
vsmp_64.c x86: clean up arch/x86/kernel/vsmp_64.c 2008-01-30 13:30:24 +01:00
vsyscall_64.c x86: map vsyscalls early enough 2008-01-30 13:32:39 +01:00
x8664_ksyms_64.c x86: export cpu_gdt_descr 2008-01-30 13:31:10 +01:00