summaryrefslogtreecommitdiff
path: root/arch/x86/xen
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2015-09-04 14:18:08 +0200
committerDavid Vrabel <david.vrabel@citrix.com>2015-09-08 16:28:05 +0100
commitcb9e444b5aaa900bb4310da411315b6947c53e37 (patch)
treeb951c1c743a923e20428105f1be794a5adf60219 /arch/x86/xen
parentab24507cfae8d916814bb6c16f66e453184a29a5 (diff)
xen: limit memory to architectural maximum
When a pv-domain (including dom0) is started it tries to size it's p2m list according to the maximum possible memory amount it ever can achieve. Limit the initial maximum memory size to the architectural limit of the hardware in order to avoid overflows during remapping of memory. This problem will occur when dom0 is started with an initial memory size being a multiple of 1GB, but without specifying it's maximum memory size. The kernel must be configured without CONFIG_XEN_BALLOON_MEMORY_HOTPLUG for the problem to happen. Reported-by: Roger Pau Monné <roger.pau@citrix.com> Tested-by: Roger Pau Monné <roger.pau@citrix.com> Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'arch/x86/xen')
-rw-r--r--arch/x86/xen/setup.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 7a5d5666677f..70de4c8b8f27 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -531,7 +531,7 @@ static unsigned long __init xen_get_pages_limit(void)
#ifdef CONFIG_X86_32
limit = GB(64) / PAGE_SIZE;
#else
- limit = ~0ul;
+ limit = MAXMEM / PAGE_SIZE;
if (!xen_initial_domain() && xen_512gb_limit)
limit = GB(512) / PAGE_SIZE;
#endif