It is currently Sat, 24 Oct 2020 17:35:51 GMT



 
Author Message
 DMI / local APIC fixes updated
I've updated the DMI/APIC fixes patch kit with two new DMI
blacklist rules, for IBM's Thinkpad T20 and Microstar's 6163
series of mainboards. Both of these appear to suffer from
similar problems as the infamous Dell Inspiron: enabling the
local APIC (via CONFIG_SMP or CONFIG_X86_UP_APIC) causes
semi-random lockups due to BIOS bugs.

An older version of the patch kit found its way into 2.5.6-pre1
via the -dj tree. Included below is an incremental update for
2.5.6-pre1 which adds the new DMI rules and eliminates an ugly
and redundant #include in ioremap.c.

The new 2.5 patch and the updated kit for 2.4 are also available
at < http://www.**-**.com/ ~mikpe/linux/patches/>.

/Mikael

diff -ruN linux-2.5.6-pre1/arch/i386/kernel/dmi_scan.c linux-2.5.6-pre1.dmi-apic-fixes/arch/i386/kernel/dmi_scan.c
--- linux-2.5.6-pre1/arch/i386/kernel/dmi_scan.c        Thu Feb 28 02:04:29 2002
+++ linux-2.5.6-pre1.dmi-apic-fixes/arch/i386/kernel/dmi_scan.c Thu Feb 28 02:06:43 2002
@@ -438,6 +438,25 @@
 }

 /*
+ * The Microstar 6163-2 (a.k.a Pro) mainboard will hang shortly after
+ * resumes, and also at what appears to be asynchronous APM events,
+ * if the local APIC is enabled.
+ */
+static int __init apm_kills_local_apic(struct dmi_blacklist *d)
+{
+#ifdef CONFIG_X86_LOCAL_APIC
+       extern int dont_enable_local_apic;
+       if (apm_info.bios.version && !dont_enable_local_apic) {
+               dont_enable_local_apic = 1;
+               printk(KERN_WARNING "%s with broken BIOS detected. "
+                      "Refusing to enable the local APIC.\n",
+                      d->ident);
+       }
+#endif
+       return 0;
+}
+
+/*
  * The Intel AL440LX mainboard will hang randomly if the local APIC
  * timer is running and the APM BIOS hasn't been disabled.
  */
@@ -612,6 +631,17 @@
                        NO_MATCH, NO_MATCH
                        } },

+       { local_apic_kills_bios, "IBM Thinkpad T20", {
+                       MATCH(DMI_BOARD_VENDOR, "IBM"),
+                       MATCH(DMI_BOARD_NAME, "264741U"),
+                       NO_MATCH, NO_MATCH
+                       } },
+
+       { apm_kills_local_apic, "Microstar 6163", {
+                       MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
+                       MATCH(DMI_BOARD_NAME, "MS-6163"),
+                       NO_MATCH, NO_MATCH } },
+
        { apm_kills_local_apic_timer, "Intel AL440LX", {
                        MATCH(DMI_BOARD_VENDOR, "Intel Corporation"),
                        MATCH(DMI_BOARD_NAME, "AL440LX"),
diff -ruN linux-2.5.6-pre1/arch/i386/mm/ioremap.c linux-2.5.6-pre1.dmi-apic-fixes/arch/i386/mm/ioremap.c
--- linux-2.5.6-pre1/arch/i386/mm/ioremap.c     Thu Feb 28 02:04:29 2002
+++ linux-2.5.6-pre1.dmi-apic-fixes/arch/i386/mm/ioremap.c      Thu Feb 28 02:06:43 2002
@@ -162,7 +162,6 @@
                return vfree((void *) (PAGE_MASK & (unsigned long) addr));
 }

-#include <asm/fixmap.h>
 void __init *bt_ioremap(unsigned long phys_addr, unsigned long size)
 {
        unsigned long offset, last_addr;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at   http://www.**-**.com/
Please read the FAQ at   http://www.**-**.com/



 Wed, 18 Aug 2004 21:20:08 GMT   
 
   [ 1 post ] 

Similar Threads

1. DMI/APIC updates 4 of 4: dmi-apic-fixups

2. DMI/APIC updates 1 of 4: boot-time-fixmaps

3. [2.5.71] local APIC blacklist rules updates

4. local APIC init fixes for 2.4.21-pre5

5. [PATCH] fix UP local APIC on SMP Athlon

6. no local P6 APIC

7. Local APIC disabled by BIOS -- reenabling.

8. kernelpanic with Asus A7M 266D (no local apic!)

9. [2.5.73] enable local APIC on P4

10. local apic timer ints not working with vmware: nolocala


 
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software