Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

x86 ACPI: Blacklist two HP machines with buggy BIOSes

There is a bug in the BIOSes of some HP boxes with AMD Turions which
connects IO-APIC pins with ACPI thermal trip points in such a way that
if the state of the IO-APIC is not as expected by the (buggy) BIOS, the
thermal trip points are set to insanely low values (usually all of them
become 16 degrees Celsius). As a result, thermal throttling kicks in
and knock the system down to its shoes.

Unfortunately some of the recent IO-APIC changes made the bug show up.
To prevent this from happening, blacklist machines that are known to be
affected (nx6115 and 6715b in this particular case).

This fixes http://bugzilla.kernel.org/show_bug.cgi?id=11516 listed as
a regression from 2.6.26.

On my box it was caused by:

commit 691874fa96d6349a8b60f8ea9c2bae52ece79941
Author: Maciej W. Rozycki <macro@linux-mips.org>
Date: Tue May 27 21:19:51 2008 +0100

x86: I/O APIC: timer through 8259A second-chance

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

and the whole story is described in this (huge) thread:

http://marc.info/?l=linux-kernel&m=121358440508410&w=4

Matthew Garrett told us about that happening on the nx6125:

http://marc.info/?l=linux-kernel&m=121396307411930&w=4

and then Maciej analysed the breakage on the basis of a DSDT from the
nx6325:

http://marc.info/?l=linux-kernel&m=121401068718826&w=4

As far as the Dmitry's and Jason's boxes are concerned, I recognized the
symptoms and asked them to verify that the blacklisting helped.

It appears that the buggy BIOS code has been copy-pasted to the entire
range of machines, for no good reason.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Tested-by: Jason Vas Dias <jason.vas.dias@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Rafael J. Wysocki and committed by
Linus Torvalds
e84956f9 fec6ed1d

+16
+16
arch/x86/kernel/acpi/boot.c
··· 1605 1605 */ 1606 1606 { 1607 1607 .callback = dmi_ignore_irq0_timer_override, 1608 + .ident = "HP nx6115 laptop", 1609 + .matches = { 1610 + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), 1611 + DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6115"), 1612 + }, 1613 + }, 1614 + { 1615 + .callback = dmi_ignore_irq0_timer_override, 1608 1616 .ident = "HP NX6125 laptop", 1609 1617 .matches = { 1610 1618 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), ··· 1625 1617 .matches = { 1626 1618 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), 1627 1619 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"), 1620 + }, 1621 + }, 1622 + { 1623 + .callback = dmi_ignore_irq0_timer_override, 1624 + .ident = "HP 6715b laptop", 1625 + .matches = { 1626 + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), 1627 + DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), 1628 1628 }, 1629 1629 }, 1630 1630 {}