linux/arch/x86/mm
Andi Kleen 1a2b441231 x86: fix early_ioremap() on 64-bit
Fix early_ioremap() on x86-64

I had ACPI failures on several machines since a few days. Symptom
was NUMA nodes not getting detected or worse cores not getting detected.
They all came from ACPI not being able to read various of its tables. I finally
bisected it down to Jeremy's "put _PAGE_GLOBAL into PAGE_KERNEL" change.
With that the fix was fairly obvious. The problem was that early_ioremap()
didn't use a "_all" flush that would affect the global PTEs too. So
with global bits getting used everywhere now an early_ioremap would
not actually flush a mapping if something else was mapped previously
on that slot (which can happen with early_iounmap inbetween)

This patch changes all flushes in init_64.c to be __flush_tlb_all()
and fixes the problem here.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:33:54 +01:00
..
discontig_32.c x86: make NUMA work on 32-bit 2008-01-30 13:33:25 +01:00
extable.c x86: unify extable_{32|64}.c 2008-01-30 13:31:41 +01:00
fault_32.c x86: return the page table level in lookup_address() 2008-01-30 13:33:43 +01:00
fault_64.c x86: update reliability argument to printk_address 2008-01-30 13:33:24 +01:00
highmem_32.c x86: kmap_atomic() debugging 2008-01-30 13:30:47 +01:00
hugetlbpage.c x86: demacro asm-x86/pgalloc_32.h 2008-01-30 13:33:39 +01:00
init_32.c x86: remove set_kernel_exec() 2008-01-30 13:33:53 +01:00
init_64.c x86: fix early_ioremap() on 64-bit 2008-01-30 13:33:54 +01:00
ioremap_32.c x86: early_ioremap_init(), enhance warnings 2008-01-30 13:33:49 +01:00
ioremap_64.c x86: set strong uncacheable where UC is really desired 2008-01-30 13:33:43 +01:00
k8topology_64.c x86: clean up k8topology.c 2008-01-30 13:32:36 +01:00
Makefile x86_64: move mm 2007-10-11 11:17:18 +02:00
Makefile_32 x86: replace boot_ioremap() with enhanced bt_ioremap() - remove boot_ioremap() 2008-01-30 13:33:44 +01:00
Makefile_64 x86: c_p_a(), add simple self test at boot 2008-01-30 13:33:43 +01:00
mmap.c x86: unify mmap_{32|64}.c 2008-01-30 13:31:10 +01:00
numa_64.c x86: early cpu_to_node fix in numa_64.c 2008-01-30 13:33:33 +01:00
pageattr_32.c x86: c_p_a() make it more robust against use of PAT bits 2008-01-30 13:33:52 +01:00
pageattr_64.c x86: c_p_a() make it more robust against use of PAT bits 2008-01-30 13:33:52 +01:00
pageattr-test.c x86: fix c_p_a() boot crash 2008-01-30 13:33:52 +01:00
pgtable_32.c x86: allocate and initialize unshared pmds 2008-01-30 13:33:40 +01:00
srat_64.c x86: fix section mismatch warning in srat_64.c 2008-01-30 13:33:37 +01:00