Boot with virtual == physical to get closer to native Linux.
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 22 Oct 2007 01:03:36 +0000 (11:03 +1000)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 23 Oct 2007 05:49:54 +0000 (15:49 +1000)
commit47436aa4ad054c1c7c8231618e86ebd9305308dc
treea9ba6e0521f9116442144a86e781a3164ec86094
parentc18acd73ffc209def08003a1927473096f66c5ad
Boot with virtual == physical to get closer to native Linux.

1) This allows us to get alot closer to booting bzImages.

2) It means we don't have to know page_offset.

3) The Guest needs to modify the boot pagetables to create the
   PAGE_OFFSET mapping before jumping to C code.

4) guest_pa() walks the page tables rather than using page_offset.

5) We don't use page_offset to figure out whether to emulate: it was
   always kinda quesationable, and won't work for instructions done
   before remapping (bzImage unpacking in particular).

6) We still want the kernel address for tlb flushing: have the initial
   hypercall give us that, too.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
12 files changed:
Documentation/lguest/lguest.c
arch/x86/kernel/asm-offsets_32.c
arch/x86/lguest/boot.c
arch/x86/lguest/i386_head.S
drivers/lguest/hypercalls.c
drivers/lguest/interrupts_and_traps.c
drivers/lguest/lg.h
drivers/lguest/lguest_user.c
drivers/lguest/page_tables.c
drivers/lguest/x86/core.c
include/asm-x86/lguest_hcall.h
include/linux/lguest.h