[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] x86/setup: don't relocate the VGA hole
# HG changeset patch # User Tim Deegan <tim@xxxxxxx> # Date 1360840027 0 # Node ID 6ad763d9f964859d045380baef43edf18399bdb0 # 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> diff -r 788f4551580d -r 6ad763d9f964 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 11:07:07 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-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |