[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86/setup: don't relocate the VGA hole.
# HG changeset patch # User Tim Deegan <tim@xxxxxxx> # Date 1360844458 0 # Node ID f9016812f0e48262387e11d3680528976dea5911 # Parent 788f4551580d476e13ea907e373e58806a32179e x86/setup: don't relocate the VGA hole. Copying the contents of the VGA hole is at best pointless and at worst dangerous. Booting Xen on Xen, it causes a very long delay as each byte is referred to qemu. Since we were already discarding the first 1MB of the relocated area, just avoid copying it in the first place. Reported-by: Jon Ludlam <jonathan.ludlam@xxxxxxxxxxxxx> Signed-off-by: Tim Deegan <tim@xxxxxxx> Committed-by: Keir Fraser <keir@xxxxxxx> --- diff -r 788f4551580d -r f9016812f0e4 xen/arch/x86/setup.c --- a/xen/arch/x86/setup.c Thu Feb 14 09:42:57 2013 +0100 +++ b/xen/arch/x86/setup.c Thu Feb 14 12:20:58 2013 +0000 @@ -838,8 +838,8 @@ void __init __start_xen(unsigned long mb l4_pgentry_t *pl4e; l3_pgentry_t *pl3e; l2_pgentry_t *pl2e; + uint64_t load_start; int i, j, k; - void *dst; /* Select relocation address. */ e = end - reloc_size; @@ -852,11 +852,9 @@ void __init __start_xen(unsigned long mb * with a barrier(). After this we must *not* modify static/global * data until after we have switched to the relocated pagetables! */ + load_start = (unsigned long)_start - XEN_VIRT_START; barrier(); - dst = move_memory(e, 0, (unsigned long)&_end - XEN_VIRT_START, 1); - - /* Poison low 1MB to detect stray pointers to physical 0-1MB. */ - memset(dst, 0x55, 1U << 20); + move_memory(e + load_start, load_start, _end - _start, 1); /* Walk initial pagetables, relocating page directory entries. */ pl4e = __va(__pa(idle_pg_table)); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |