linux/include/asm-x86
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
..
mach-bigsmp
mach-default
mach-es7000
mach-generic x86: add generic GPIO support to x86 2008-01-30 13:33:35 +01:00
mach-numaq x86: move NUMAQ io handling into arch/x86/pci/numa.c 2008-02-04 16:48:03 +01:00
mach-rdc321x x86: add support for the RDC R-321x SoC 2008-01-30 13:33:36 +01:00
mach-summit
mach-visws
mach-voyager time: delete comments that refer to noexistent symbols 2008-02-03 16:20:13 +02:00
xen
Kbuild Unexport asm/user.h and linux/user.h 2008-02-07 08:42:29 -08:00
a.out-core.h aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT 2008-02-08 09:22:30 -08:00
a.out.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
acpi.h x86: fix sparse warnings in acpi/bus.c 2008-02-09 23:24:08 +01:00
agp.h x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
alternative-asm.h
alternative.h
apic.h
apicdef.h
arch_hooks.h
asm.h x86: add _ASM_EXTABLE macro to <asm/asm.h> 2008-02-04 16:47:56 +01:00
atomic.h
atomic_32.h
atomic_64.h
auxvec.h
bitops.h
bitops_32.h
bitops_64.h iommu sg: kill __clear_bit_string and find_next_zero_string 2008-02-05 09:44:11 -08:00
boot.h
bootparam.h
bug.h
bugs.h x86: add include to cpu/intel.c 2008-02-04 16:48:04 +01:00
byteorder.h
cache.h
cacheflush.h x86: include proper prototypes for rodata_test 2008-02-14 23:30:20 +01:00
calgary.h
calling.h
checksum.h
checksum_32.h
checksum_64.h
cmpxchg.h
cmpxchg_32.h
cmpxchg_64.h Add cmpxchg64 and cmpxchg64_local to x86_64 2008-02-07 08:42:31 -08:00
compat.h asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
cpu.h x86: avoid section mismatch involving arch_register_cpu 2008-02-01 17:49:43 +01:00
cpufeature.h x86: add feature macros for the gbpages cpuid bit 2008-02-04 16:48:09 +01:00
cputime.h
current.h
current_32.h
current_64.h
debugreg.h
delay.h Fix __const_udelay declaration and definition mismatches 2008-02-06 10:41:06 -08:00
desc.h
desc_64.h
desc_defs.h
device.h
div64.h
dma-mapping.h
dma-mapping_32.h
dma-mapping_64.h
dma.h
dmi.h x86 32-bit boot: rename bt_ioremap() to early_ioremap() 2008-01-30 13:33:44 +01:00
ds.h
dwarf2.h
dwarf2_32.h
dwarf2_64.h
e820.h x86: fix the missing BIOS area check in page_is_ram 2008-01-30 13:34:06 +01:00
e820_32.h x86_32: trim memory by updating e820 2008-01-30 13:33:32 +01:00
e820_64.h x86_64: make bootmap_start page align v6 2008-02-01 17:49:41 +01:00
edac.h
efi.h x86: fix EFI mapping 2008-02-04 16:48:06 +01:00
elf.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
emergency-restart.h
errno.h
fb.h
fcntl.h
fixmap.h
fixmap_32.h x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
fixmap_64.h x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
floppy.h
frame.h
futex.h x86: use _ASM_EXTABLE macro in include/asm-x86/futex.h 2008-02-04 16:47:58 +01:00
gart.h x86: disable the GART early, 64-bit 2008-01-30 13:33:09 +01:00
genapic.h
genapic_32.h
genapic_64.h
geode.h x86: GEODE: MFGPT: Use "just-in-time" detection for the MFGPT timers 2008-02-09 23:24:08 +01:00
gpio.h x86: add generic GPIO support to x86 2008-01-30 13:33:35 +01:00
hardirq.h
hardirq_32.h
hardirq_64.h
highmem.h i386: Resolve dependency of asm-i386/pgtable.h on highmem.h 2008-02-05 09:44:14 -08:00
hpet.h x86, rtc: make CONFIG_HPET_EMULATE_RTC usable from modules 2008-01-30 13:33:28 +01:00
hw_irq.h
hw_irq_32.h x86: remove final FASTCALL() uses 2008-02-04 16:48:03 +01:00
hw_irq_64.h x86: provide a native_init_IRQ function on 64-bit 2008-01-30 13:33:19 +01:00
hypertransport.h
i387.h x86: use _ASM_EXTABLE macro in include/asm-x86/i387.h 2008-02-04 16:47:58 +01:00
i8253.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
i8259.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
ia32.h
ia32_unistd.h
ide.h
idle.h
intel_arch_perfmon.h
io.h
io_32.h x86: remove special NUMAQ support in io_32.h 2008-02-04 16:48:03 +01:00
io_64.h x86: make ioremap() UC by default 2008-01-30 13:34:09 +01:00
io_apic.h
ioctl.h
ioctls.h
iommu.h
ipcbuf.h
ipi.h
irq.h
irq_32.h
irq_64.h
irq_regs.h
irq_regs_32.h
irq_regs_64.h
irqflags.h
ist.h
k8.h
kdebug.h x86: make dump_pagetable() static 2008-02-14 23:30:19 +01:00
kexec.h
kmap_types.h
kprobes.h
kvm.h KVM: Portability: Move kvm_fpu to asm-x86/kvm.h 2008-01-30 18:01:22 +02:00
kvm_host.h KVM: x86 emulator: Only allow VMCALL/VMMCALL trapped by #UD 2008-01-30 18:01:21 +02:00
kvm_para.h KVM: Per-architecture hypercall definitions 2008-01-30 17:52:55 +02:00
kvm_x86_emulate.h KVM: Move arch dependent files to new directory arch/x86/kvm/ 2008-01-30 18:01:18 +02:00
ldt.h
lguest.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2008-01-31 09:35:32 +11:00
lguest_hcall.h
linkage.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
local.h
mach_apic.h
math_emu.h
mc146818rtc.h
mca.h
mca_dma.h
mce.h
mman.h
mmu.h
mmu_context.h
mmu_context_32.h
mmu_context_64.h x86: put generic mm_hooks include into PARAVIRT 2008-01-30 13:33:19 +01:00
mmx.h
mmzone.h
mmzone_32.h Introduce flags for reserve_bootmem() 2008-02-07 08:42:25 -08:00
mmzone_64.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
module.h
mpspec.h
mpspec_def.h
msgbuf.h
msidef.h
msr-index.h x86: msr for AMD Fam 10h mmio 2008-01-30 13:33:18 +01:00
msr.h x86: use _ASM_EXTABLE macro in include/asm-x86/msr.h 2008-02-04 16:47:58 +01:00
mtrr.h x86, 32-bit: trim memory not covered by wb mtrrs 2008-01-30 13:33:18 +01:00
mutex.h
mutex_32.h
mutex_64.h
namei.h
nmi.h
nmi_32.h
nmi_64.h
nops.h
numa.h
numa_32.h x86: arch/x86/mm/init_32.c cleanup 2008-01-30 13:34:10 +01:00
numa_64.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
numaq.h
page.h x86: rename LARGE_PAGE_SIZE to PMD_PAGE_SIZE 2008-02-04 16:48:08 +01:00
page_32.h x86: construct 32-bit boot time page tables in native format. 2008-02-09 23:24:09 +01:00
page_64.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
param.h
paravirt.h x86: add mm parameter to paravirt_alloc_pd 2008-01-30 13:33:39 +01:00
parport.h
pci-direct.h
pci.h
pci_32.h
pci_64.h
pda.h
percpu.h x86: unify percpu.h 2008-01-30 13:32:53 +01:00
pgalloc.h
pgalloc_32.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgalloc_64.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable-2level-defs.h
pgtable-2level.h x86: clean up pte_exec 2008-01-30 13:33:42 +01:00
pgtable-3level-defs.h
pgtable-3level.h x86: update reference for PAE tlb flushing 2008-02-04 16:48:02 +01:00
pgtable.h x86: sparse warnings in pageattr.c 2008-02-09 23:24:08 +01:00
pgtable_32.h x86: construct 32-bit boot time page tables in native format. 2008-02-09 23:24:09 +01:00
pgtable_64.h x86: zap invalid and unused pmds in early boot 2008-02-18 20:54:14 +01:00
poll.h
posix_types.h
posix_types_32.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
posix_types_64.h
prctl.h
processor-cyrix.h
processor-flags.h
processor.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
proto.h x86: replace hard coded reservations in 64-bit early boot code with dynamic table 2008-01-30 13:33:17 +01:00
ptrace-abi.h x86, ptrace: add bts_struct size to status command 2008-01-30 13:32:54 +01:00
ptrace.h x86: rename stack_pointer to kernel_trap_sp 2008-01-30 13:33:16 +01:00
reboot.h
reboot_fixups.h
required-features.h
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
scatterlist.h
seccomp.h
seccomp_32.h
seccomp_64.h
sections.h
segment.h x86: early_idt_handler improvements, 64-bit 2008-01-30 13:33:06 +01:00
semaphore.h
semaphore_32.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
semaphore_64.h
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h x86: fix sigcontext.h user export 2008-02-13 16:20:35 +01:00
sigcontext32.h
siginfo.h
signal.h
smp.h
smp_32.h x86: cleanup x86_cpu_to_apicid references 2008-01-30 13:33:11 +01:00
smp_64.h x86: change bios_cpu_apicid to percpu data variable 2008-01-30 13:33:12 +01:00
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h
sparsemem.h
spinlock.h x86: big ticket locks 2008-01-30 13:33:00 +01:00
spinlock_types.h
srat.h
stacktrace.h x86: add the capability to print fuzzy backtraces 2008-01-30 13:33:07 +01:00
stat.h
statfs.h
string.h
string_32.h x86: sparse errors from string_32.h 2008-02-04 16:48:01 +01:00
string_64.h
suspend.h
suspend_32.h
suspend_64.h
swiotlb.h
sync_bitops.h
system.h x86: remove final FASTCALL() uses 2008-02-04 16:48:03 +01:00
system_64.h
tce.h
termbits.h
termios.h tty: fix tty network driver interactions with TCGET/TCSET calls (x86 fix) 2008-02-07 08:42:16 -08:00
therm_throt.h
thread_info.h
thread_info_32.h
thread_info_64.h x86: fix duplicated TIF on 64-bit 2008-01-30 23:27:57 +01:00
time.h
timer.h
timex.h read_current_timer() cleanups 2008-02-06 10:41:02 -08:00
tlb.h
tlbflush.h
topology.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
tsc.h x86: get_cycles() fix 2008-01-30 13:33:24 +01:00
types.h
uaccess.h
uaccess_32.h x86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_32.h 2008-02-04 16:47:59 +01:00
uaccess_64.h x86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_64.h 2008-02-04 16:47:59 +01:00
ucontext.h
unaligned.h
unistd.h
unistd_32.h timerfd: wire the new timerfd API to the x86 family 2008-02-05 09:44:07 -08:00
unistd_64.h timerfd: wire the new timerfd API to the x86 family 2008-02-05 09:44:07 -08:00
unwind.h
user.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
user32.h
user_32.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
user_64.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
vdso.h
vga.h
vgtod.h
vic.h
vm86.h x86: add function prototype to vm86.h 2008-02-04 16:48:04 +01:00
vmi.h
vmi_time.h
voyager.h
vsyscall.h
xor.h
xor_32.h
xor_64.h