2.6.27-stable review patch. If anyone has any objections, please let us know.


From: Ingo Molnar

commit 1e22436eba84edfec9c25e5a25d09062c4f91ca9 upstream

there's multiple reports about suspend/resume related low memory
corruption in this bugzilla:


the common pattern is that the corruption is caused by the BIOS,
and that it affects some portion of the first 64K of physical RAM.

So add a DMI quirk

This will waste 64K RAM on 'good' systems too, but without knowing
the exact nature of this BIOS memory corruption this is the safest

This might as well solve a wide range of suspend/resume breakages
under Linux.

Signed-off-by: Ingo Molnar
Signed-off-by: Greg Kroah-Hartman

arch/x86/kernel/setup.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -581,10 +581,10 @@ struct x86_quirks *x86_quirks __initdata
static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
- "%s detected: BIOS corrupts 0xc000, working it around.\n",
+ "%s detected: BIOS may corrupt low RAM, working it around.\n",

- reserve_early(0xc000, 0xc400, "BIOS quirk");
+ reserve_early(0x0, 0x10000, "BIOS quirk");

return 0;
@@ -598,6 +598,13 @@ static struct dmi_system_id __initdata b
DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
+ {
+ .callback = dmi_low_memory_corruption,
+ .ident = "Phoenix BIOS",
+ .matches = {
+ DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
+ },
+ },

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/