Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 113354
b: refs/heads/master
c: 5649b7c
h: refs/heads/master
v: v3
  • Loading branch information
Ingo Molnar committed Sep 16, 2008
1 parent d3a932e commit 4445ca4
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a
refs/heads/master: 5649b7c30316a51792808422ac03ee825d26aa5e
27 changes: 27 additions & 0 deletions trunk/arch/x86/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,29 @@ void start_periodic_check_for_corruption(void)
}
#endif

static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
{
printk(KERN_NOTICE
"%s detected: BIOS corrupts 0xc000, working it around.\n",
d->ident);

reserve_early(0xc000, 0xc400, "BIOS quirk");

return 0;
}

/* List of systems that have known low memory corruption BIOS problems */
static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
{
.callback = dmi_low_memory_corruption,
.ident = "AMI BIOS",
.matches = {
DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
},
},
{}
};

/*
* Determine if we were loaded by an EFI loader. If so, then we have also been
* passed the efi memmap, systab, etc., so we should use these data structures
Expand All @@ -752,6 +775,8 @@ void __init setup_arch(char **cmdline_p)
printk(KERN_INFO "Command line: %s\n", boot_command_line);
#endif

dmi_check_system(bad_bios_dmi_table);

early_cpu_init();
early_ioremap_init();

Expand Down Expand Up @@ -1037,3 +1062,5 @@ void __init setup_arch(char **cmdline_p)
#endif
#endif
}


0 comments on commit 4445ca4

Please sign in to comment.