linux_old1/arch/x86/kernel
Rusty Russell da32dac101 lguest: populate initial_page_table
Two x86 patches broke lguest:
1) v2.6.35-492-g72d7c3b, which changed x86 to use the memblock allocator.

In lguest, the host places linear page tables at the top of mem, which
used to be enough to get us up to the swapper_pg_dir page tables.  With
the first patch, the direct mapping tables used that memory:

Before: kernel direct mapping tables up to 4000000 @ 7000-1a000
After: kernel direct mapping tables up to 4000000 @ 3fed000-4000000

I initially fixed this by lying about the amount of memory we had, so
the kernel wouldn't blatt the lguest boot pagetables (yuk!), but then...

2) v2.6.36-rc8-54-gb40827f, which made x86 boot use initial_page_table.

This was initialized in a part of head_32.S which isn't executed by
lguest; it is then copied into swapper_pg_dir.  So we have to initialize
it; and anyway we switch to it before we blatt the old tables, so that
fixes the previous damage as well.

For the moment, I cut & pasted the code into lguest's boot code, but
next merge window I will merge them.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: x86@kernel.org
2010-12-16 17:03:15 +10:30
..
acpi Merge branch 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-10-28 17:11:17 -07:00
apic Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-11-27 07:28:47 +09:00
cpu x86, perf, nmi: Disable perf if counters are not accessible 2010-11-26 15:00:57 +01:00
.gitignore
Makefile x86: Move olpc to platform 2010-10-27 17:22:16 +02:00
alternative.c Merge branches 'perf-fixes-for-linus' and 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-30 11:43:26 -07:00
amd_iommu.c x86/amd-iommu: Update copyright headers 2010-10-13 11:13:21 +02:00
amd_iommu_init.c Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:23:48 -07:00
amd_nb.c x86, amd_nb: Enable GART support for AMD family 0x15 CPUs 2010-10-01 16:18:32 -07:00
apb_timer.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:11:46 -07:00
aperture_64.c Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:23:48 -07:00
apm_32.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
asm-offsets.c
asm-offsets_32.c x86, asm: Fix CFI macro invocations to deal with shortcomings in gas 2010-10-19 14:28:02 -07:00
asm-offsets_64.c
audit_64.c
bootflag.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
check.c x86: Use memblock to replace early_res 2010-08-27 11:12:29 -07:00
cpuid.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
crash.c x86, UV: Make kdump avoid stack dumps 2010-07-21 11:33:27 -07:00
crash_dump_32.c mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
crash_dump_64.c mm, x86: Saving vmcore with non-lazy freeing of vmas 2010-09-17 09:11:56 +02:00
doublefault_32.c
dumpstack.c x86: Unify dumpstack.h and stacktrace.h 2010-06-08 23:29:52 +02:00
dumpstack_32.c x86, printk: Get rid of <0> from stack output 2010-10-23 20:03:03 +02:00
dumpstack_64.c x86, printk: Get rid of <0> from stack output 2010-10-23 20:03:03 +02:00
e820.c x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve 2010-08-27 11:13:54 -07:00
early-quirks.c Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:18:06 -07:00
early_printk.c x86, earlyprintk: Add hsu early console for Intel Medfield platform 2010-10-08 10:01:47 +02:00
early_printk_mrst.c x86, earlyprintk: Add hsu early console for Intel Medfield platform 2010-10-08 10:01:47 +02:00
entry_32.S x86, asm: Fix binutils 2.15 build failure 2010-11-18 09:25:11 +01:00
entry_64.S x86/kprobes: Prevent kprobes to probe on save_args() 2010-11-18 13:40:19 +01:00
ftrace.c jump label: Make dynamic no-op selection available outside of ftrace 2010-09-20 18:19:39 -04:00
head.c x86: Use memblock to replace early_res 2010-08-27 11:12:29 -07:00
head32.c Merge branch 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-22 20:37:50 -07:00
head64.c x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S 2010-10-14 09:06:49 +02:00
head_32.S lguest: populate initial_page_table 2010-12-16 17:03:15 +10:30
head_64.S x86-64: Simplify loading initial_gs 2010-07-21 21:23:51 -07:00
hpet.c workqueues: s/ON_STACK/ONSTACK/ 2010-10-26 16:52:14 -07:00
hw_breakpoint.c x86: Ignore trap bits on single step exceptions 2010-11-12 14:51:01 +01:00
i386_ksyms_32.c
i387.c Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:34:32 -07:00
i8237.c
i8253.c i8253: Convert i8253_lock to raw_spinlock 2010-03-02 10:28:38 +01:00
i8259.c x86: i8259: Convert to new irq_chip functions 2010-10-12 16:53:36 +02:00
init_task.c Rename .data.cacheline_aligned to .data..cacheline_aligned. 2010-03-03 11:25:58 +01:00
io_delay.c
ioport.c x86-64, paravirt: Call set_iopl_mask() on 64 bits 2009-12-09 16:54:08 -08:00
irq.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:11:46 -07:00
irq_32.c x86-32: Restore irq stacks NUMA-aware allocations 2010-10-29 08:17:07 +02:00
irq_64.c
irq_work.c irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
irqinit.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:11:46 -07:00
jump_label.c jump label: x86 support 2010-09-22 16:33:03 -04:00
kdebugfs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
kgdb.c kgdb,x86: fix regression in detach handling 2010-11-17 13:54:57 -06:00
kprobes.c jump label: Add jump_label_text_reserved() to reserve jump points 2010-09-22 16:30:46 -04:00
kvm.c
kvmclock.c KVM guest: Move a printk that's using the clock before it's ready 2010-10-24 10:53:06 +02:00
ldt.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
machine_kexec_32.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-08 13:27:33 -08:00
machine_kexec_64.c x86, cleanups: Use clear_page/copy_page rather than memset/memcpy 2010-09-22 15:36:49 -07:00
mca_32.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
microcode_amd.c x86: Remove unnecessary casts of void ptr returning alloc function return values 2010-11-10 09:13:00 +01:00
microcode_core.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
microcode_intel.c Update broken web addresses in arch directory. 2010-10-18 11:03:21 +02:00
mmconf-fam10h_64.c x86-64: Fix and clean up AMD Fam10 MMCONF enabling 2010-11-18 13:41:35 +01:00
module.c Merge commit 'v2.6.36-rc7' into perf/core 2010-10-08 10:46:27 +02:00
mpparse.c Merge commit 'v2.6.36-rc3' into x86/memblock 2010-08-31 09:45:46 +02:00
msr.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
paravirt-spinlocks.c locking: Convert __raw_spin* functions to arch_spin* 2009-12-14 23:55:32 +01:00
paravirt.c x86, paravirt: Remove alloc_pmd_clone hook, only used by VMI 2010-08-23 17:09:44 -07:00
paravirt_patch_32.c
paravirt_patch_64.c
pci-calgary_64.c x86, calgary: Make Calgary IOMMU use IOMMU_INIT_* macros. 2010-08-26 15:14:15 -07:00
pci-dma.c x86, iommu: Utilize the IOMMU_INIT macros functionality. 2010-08-26 15:14:52 -07:00
pci-gart_64.c Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:23:48 -07:00
pci-iommu_table.c x86, iommu: Add proper dependency sort routine (and sanity check). 2010-08-26 15:13:19 -07:00
pci-nommu.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci-swiotlb.c x86, swiotlb: Make SWIOTLB use IOMMU_INIT_* macros. 2010-08-26 15:13:37 -07:00
pcspeaker.c
probe_roms_32.c
process.c Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
process_32.c x86, perf: Add power_end event to process_*.c cpu_idle routine 2010-06-18 11:35:10 +02:00
process_64.c x86-64, fpu: Disable preemption when using TS_USEDFPU 2010-09-09 14:16:45 -07:00
ptrace.c ptrace: cleanup arch_ptrace() on x86 2010-10-27 18:03:10 -07:00
pvclock.c x86/pvclock: Zero last_value on resume 2010-11-28 09:33:20 +01:00
quirks.c x86: HPET force enable for CX700 / VIA Epia LT 2010-09-15 16:27:04 +02:00
reboot.c Merge branch 'linus' into x86/urgent 2010-10-25 19:38:52 +02:00
reboot_fixups_32.c cs5535: move the DIVIL MSR definition into linux/cs5535.h 2009-12-15 08:53:28 -08:00
relocate_kernel_32.S
relocate_kernel_64.S
rtc.c
setup.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2010-10-28 11:59:52 -07:00
setup_percpu.c Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 18:52:11 -07:00
signal.c x86: Merge sys_sigaltstack 2009-12-09 16:28:59 -08:00
smp.c x86, kexec: Make sure to stop all CPUs before exiting the kernel 2010-10-21 13:30:44 -07:00
smpboot.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-27 18:38:55 -07:00
stacktrace.c x86: Unify save_stack_address() and save_stack_address_nosched() 2010-06-09 17:32:19 +02:00
step.c x86, ptrace: Fix block-step 2010-03-26 11:33:57 +01:00
sys_i386_32.c i386: Make kernel_execve() suitable for stack unwinding 2010-09-03 08:16:02 +02:00
sys_x86_64.c improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
syscall_64.c
syscall_table_32.S x86: fix up system call numbering nit 2010-08-10 15:35:10 -07:00
tboot.c Merge branch 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2010-05-21 17:16:21 -07:00
tce_64.c
test_nx.c
test_rodata.c
time.c x86: Convert i8259_lock to raw_spinlock 2010-02-16 18:21:32 +01:00
tls.c
tls.h
topology.c
trampoline.c Merge branch 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-22 20:37:50 -07:00
trampoline_32.S
trampoline_64.S
traps.c Merge branches 'softirq-for-linus', 'x86-debug-for-linus', 'x86-numa-for-linus', 'x86-quirks-for-linus', 'x86-setup-for-linus', 'x86-uv-for-linus' and 'x86-vm86-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-23 08:25:36 -07:00
tsc.c Merge branch 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:01:08 -07:00
tsc_sync.c locking: Convert __raw_spin* functions to arch_spin* 2009-12-14 23:55:32 +01:00
verify_cpu_64.S x86: Use symbolic MSR names 2010-07-21 21:23:40 -07:00
vm86_32.c x86, vm86: Fix preemption bug for int1 debug and int3 breakpoint handlers. 2010-09-23 11:07:49 -07:00
vmlinux.lds.S Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-22 08:54:21 -07:00
vsmp_64.c
vsyscall_64.c timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset 2010-07-27 12:40:54 +02:00
x86_init.c x86: Introduce x86_msi_ops 2010-10-18 10:49:34 -04:00
x8664_ksyms_64.c x86-64: Don't export init_level4_pgt 2010-04-28 17:25:47 -07:00
xsave.c Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00