|
[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 |