From: Jan Beulich Date: Mon, 4 Nov 2013 13:29:24 +0000 (+0100) Subject: x86: make sure memory block is RAM before passing to the allocator X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6080 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=227258983401b7e6091967ffaf22ad83f4ebaf6f;p=xen.git x86: make sure memory block is RAM before passing to the allocator Memory blocks outside of the always visible 1:1 mapping range get passed to the allocator separately (once enough other setup was done). Skipping non-RAM regions, however, was forgotten in adc5afbf ("x86: support up to 16Tb"). Signed-off-by: Jan Beulich Acked-by: Keir Fraser --- diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 30a4fd6b88..5bf4ee0b2d 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1155,6 +1155,8 @@ void __init __start_xen(unsigned long mbi_p) { uint64_t s, e; + if ( boot_e820.map[i].type != E820_RAM ) + continue; s = (boot_e820.map[i].addr + mask) & ~mask; e = (boot_e820.map[i].addr + boot_e820.map[i].size) & ~mask; if ( PFN_DOWN(e) <= limit )