]> git.karo-electronics.de Git - karo-tx-linux.git/commit
x86: add DMI quirk for AMI BIOS which corrupts address 0xc000 during resume
authorIngo Molnar <mingo@elte.hu>
Tue, 16 Sep 2008 07:29:09 +0000 (09:29 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 13 Nov 2008 17:55:54 +0000 (09:55 -0800)
commit71556e929b5666bc03750402ce30e3c61cd5148e
treeeab9cf26a7a96141e070f4218c43903ba639ae76
parenta0b8bfb34743b6e6c2bb06ad5a270590d90270f7
x86: add DMI quirk for AMI BIOS which corrupts address 0xc000 during resume

commit 5649b7c30316a51792808422ac03ee825d26aa5e upstream

Alan Jenkins and Andy Wettstein reported a suspend/resume memory
corruption bug and extensively documented it here:

   http://bugzilla.kernel.org/show_bug.cgi?id=11237

The bug is that the BIOS overwrites 1K of memory at 0xc000 physical,
without registering it in e820 as reserved or giving the kernel any
idea about this.

Detect AMI BIOSen and reserve that 1K.

We paint this bug around with a very broad brush (reserving that 1K on all
AMI BIOS systems), as the bug was extremely hard to find and needed several
weeks and lots of debugging and patching.

The bug was found via the CONFIG_X86_CHECK_BIOS_CORRUPTION=y debug feature,
if similar bugs are suspected then this feature can be enabled on other
systems as well to scan low memory for corrupted memory.

Reported-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Reported-by: Andy Wettstein <ajw1980@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/setup.c