From: Andrew Cooper Date: Sat, 28 Dec 2019 14:41:11 +0000 (+0000) Subject: x86/boot: Check for E820_RAM earlier when searching the E820 X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~915 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=aefb07395ff4b320ee245b5995496c8d396fce99;p=xen.git x86/boot: Check for E820_RAM earlier when searching the E820 There is no point performing the masking calculations if we are going to throw the result away. No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 501f3f5e4b..ed54f79fea 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1033,11 +1033,14 @@ void __init noreturn __start_xen(unsigned long mbi_p) uint64_t s, e, mask = (1UL << L2_PAGETABLE_SHIFT) - 1; uint64_t end, limit = ARRAY_SIZE(l2_identmap) << L2_PAGETABLE_SHIFT; + if ( boot_e820.map[i].type != E820_RAM ) + continue; + /* Superpage-aligned chunks from BOOTSTRAP_MAP_BASE. */ s = (boot_e820.map[i].addr + mask) & ~mask; e = (boot_e820.map[i].addr + boot_e820.map[i].size) & ~mask; s = max_t(uint64_t, s, BOOTSTRAP_MAP_BASE); - if ( (boot_e820.map[i].type != E820_RAM) || (s >= e) ) + if ( s >= e ) continue; if ( s < limit ) @@ -1286,11 +1289,14 @@ void __init noreturn __start_xen(unsigned long mbi_p) uint64_t s, e, mask = PAGE_SIZE - 1; uint64_t map_s, map_e; + if ( boot_e820.map[i].type != E820_RAM ) + continue; + /* Only page alignment required now. */ s = (boot_e820.map[i].addr + mask) & ~mask; e = (boot_e820.map[i].addr + boot_e820.map[i].size) & ~mask; s = max_t(uint64_t, s, 1<<20); - if ( (boot_e820.map[i].type != E820_RAM) || (s >= e) ) + if ( s >= e ) continue; if ( !acpi_boot_table_init_done &&