From a33d836ae4ffebe6a9e94e1a843774453dd00e93 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Thu, 2 Sep 2010 16:16:00 +0100 Subject: [PATCH] --- yaml --- r: 217863 b: refs/heads/master c: 9e9a5fcb04e3af077d1be32710298b852210d93f h: refs/heads/master i: 217861: 4872392fc77eb4c439f6b2c97eb7b113d7f646a3 217859: 1853c8cd045e7e3ca53b0efcde2d467f8d4130f9 217855: be1545db0f53f55d1f7ddae86f3b9f0fb13d8377 v: v3 --- [refs] | 2 +- trunk/arch/x86/xen/setup.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 89f81e3ed139..d9cc98985450 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 375b2a9ada6d105483aab22f1af1d727bc3c418d +refs/heads/master: 9e9a5fcb04e3af077d1be32710298b852210d93f diff --git a/trunk/arch/x86/xen/setup.c b/trunk/arch/x86/xen/setup.c index 7a4ab05cff8a..0ce9d58cb29d 100644 --- a/trunk/arch/x86/xen/setup.c +++ b/trunk/arch/x86/xen/setup.c @@ -149,6 +149,7 @@ char * __init xen_memory_setup(void) unsigned long extra_pages = 0; unsigned long extra_limit; int i; + int op; max_pfn = min(MAX_DOMAIN_PAGES, max_pfn); mem_end = PFN_PHYS(max_pfn); @@ -156,7 +157,10 @@ char * __init xen_memory_setup(void) memmap.nr_entries = E820MAX; set_xen_guest_handle(memmap.buffer, map); - rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap); + op = xen_initial_domain() ? + XENMEM_machine_memory_map : + XENMEM_memory_map; + rc = HYPERVISOR_memory_op(op, &memmap); if (rc == -ENOSYS) { memmap.nr_entries = 1; map[0].addr = 0ULL; @@ -235,7 +239,8 @@ char * __init xen_memory_setup(void) else extra_pages = 0; - xen_add_extra_mem(extra_pages); + if (!xen_initial_domain()) + xen_add_extra_mem(extra_pages); return "Xen"; }