]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xen: limit memory to architectural maximum
authorJuergen Gross <jgross@suse.com>
Fri, 4 Sep 2015 12:18:08 +0000 (14:18 +0200)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 5 Feb 2016 11:43:34 +0000 (03:43 -0800)
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>
(cherry picked from commit cb9e444b5aaa900bb4310da411315b6947c53e37)
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
(cherry picked from commit 2492a73eef33873c4f6e01c0d98ef3396faa7953)

arch/x86/xen/setup.c

index 7a5d5666677f0175b30229ae3c0b102a0b526e75..70de4c8b8f271dbfeeb9f593455b08d2550f6e16 100644 (file)
@@ -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