From: H. Peter Anvin Date: Wed, 1 Apr 2009 18:35:00 +0000 (-0700) Subject: x86, setup: guard against pre-ACPI 3 e820 code not updating %ecx X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=cd670599b7b00d9263f6f11a05c0edeb9cbedaf3;p=linux-2.6-omap-h63xx.git x86, setup: guard against pre-ACPI 3 e820 code not updating %ecx Impact: BIOS bug safety For pre-ACPI 3 BIOSes, pre-initialize the end of the e820 buffer just in case the BIOS returns an unchanged %ecx but without actually touching the ACPI 3 extended flags field. Signed-off-by: H. Peter Anvin --- diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c index d5d2360763d..5054c2ddd1a 100644 --- a/arch/x86/boot/memory.c +++ b/arch/x86/boot/memory.c @@ -31,6 +31,12 @@ static int detect_memory_e820(void) struct e820entry *desc = boot_params.e820_map; static struct e820_ext_entry buf; /* static so it is zeroed */ + /* + * Set this here so that if the BIOS doesn't change this field + * but still doesn't change %ecx, we're still okay... + */ + buf.ext_flags = 1; + do { size = sizeof buf;