]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/kernel/setup.c
x86: use round_jiffies() for the corruption check timer
[linux-2.6-omap-h63xx.git] / arch / x86 / kernel / setup.c
index 3109ca37a67c57cc25241b75a9992188705d4dfe..161f1b33ecec0ccae3cd8dfaf36df52249d9c98e 100644 (file)
@@ -712,7 +712,7 @@ void check_for_bios_corruption(void)
 static void periodic_check_for_corruption(unsigned long data)
 {
        check_for_bios_corruption();
-       mod_timer(&periodic_check_timer, jiffies + corruption_check_period*HZ);
+       mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
 }
 
 void start_periodic_check_for_corruption(void)
@@ -732,16 +732,17 @@ void start_periodic_check_for_corruption(void)
 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",
+               "%s detected: BIOS may corrupt low RAM, working it around.\n",
                d->ident);
 
-       reserve_early(0xc000, 0xc400, "BIOS quirk");
+       reserve_early_overlap_ok(0x0, 0x10000, "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[] = {
+#ifdef CONFIG_X86_RESERVE_LOW_64K
        {
                .callback = dmi_low_memory_corruption,
                .ident = "AMI BIOS",
@@ -749,7 +750,15 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
                        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"),
+               },
+       },
        {}
+#endif
 };
 
 /*