linux/arch/x86/kernel
Rafael J. Wysocki e84956f92a 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 691874fa96
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>
2008-10-06 10:17:29 -07:00
..
acpi x86 ACPI: Blacklist two HP machines with buggy BIOSes 2008-10-06 10:17:29 -07:00
cpu x86: fix typo in enable_mtrr_cleanup early parameter 2008-09-30 10:06:09 +02:00
.gitignore
Makefile
alternative.c x86: use X86_FEATURE_NOPL in alternatives 2008-09-05 16:14:01 -07:00
amd_iommu.c AMD IOMMU: protect completion wait loop with iommu lock 2008-09-18 09:25:44 +02:00
amd_iommu_init.c x86, AMD IOMMU: initialize dma_ops after sysfs registration 2008-08-15 13:56:56 +02:00
aperture_64.c
apic_32.c x86: resurrect proper handling of maxcpus= kernel option (v2) 2008-08-14 11:18:08 +02:00
apic_64.c x86: resurrect proper handling of maxcpus= kernel option (v2) 2008-08-14 11:18:08 +02:00
apm_32.c x86: disable apm on the olpc 2008-09-24 09:33:58 +02:00
asm-offsets.c
asm-offsets_32.c
asm-offsets_64.c
audit_64.c
bios_uv.c
bootflag.c
cpuid.c x86: cpuid: correct return value on partial operations 2008-08-25 17:46:12 -07:00
crash.c
crash_dump_32.c
crash_dump_64.c
doublefault_32.c
ds.c
e820.c x86: fix memmap=exactmap boot argument 2008-09-09 11:54:53 -07:00
early-quirks.c
early_printk.c
efi.c
efi_32.c x86: fix i486 suspend to disk CR4 oops 2008-08-18 08:50:19 +02:00
efi_64.c
efi_stub_32.S
efi_stub_64.S
entry_32.S
entry_64.S
ftrace.c
genapic_64.c GRU Driver: export is_uv_system(), zap_page_range() & follow_page() 2008-07-30 09:41:48 -07:00
genapic_flat_64.c
genx2apic_uv_x.c x86: fix section mismatch warning - uv_cpu_init 2008-08-22 14:12:20 +02:00
geode_32.c
head.c
head32.c
head64.c x86-64: fix overlap of modules and fixmap areas 2008-08-15 17:31:50 +02:00
head_32.S x86: fix cpu hotplug on 32bit 2008-07-27 21:43:11 +02:00
head_64.S
hpet.c x86: HPET: read back compare register before reading counter 2008-09-06 07:21:17 +02:00
i386_ksyms_32.c
i387.c
i8237.c
i8253.c
i8259.c
init_task.c
io_apic_32.c x86: Restore proper vector locking during cpu hotplug 2008-08-11 10:37:34 +02:00
io_apic_64.c x86: Restore proper vector locking during cpu hotplug 2008-08-11 10:37:34 +02:00
io_delay.c x86: add io delay quirk for Presario F700 2008-09-03 16:42:51 -07:00
ioport.c
ipi.c
irq_32.c
irq_64.c
irqinit_32.c
irqinit_64.c x86-64: make BUILD_IRQ() also reset section back 2008-07-24 12:49:26 -07:00
k8.c
kdebugfs.c arch/x86/kernel/kdebugfs.c: introduce missing kfree 2008-09-10 14:03:49 +02:00
kgdb.c kgdb, x86_64: fix PS CS SS registers in gdb serial 2008-09-26 10:36:42 -05:00
kprobes.c kprobes: improve kretprobe scalability with hashed locking 2008-07-25 10:53:30 -07:00
kvm.c
kvmclock.c
ldt.c cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu 2008-07-26 16:40:33 +02:00
machine_kexec_32.c kexec jump: fix for ftrace 2008-08-15 08:35:43 -07:00
machine_kexec_64.c kexec jump 2008-07-26 12:00:04 -07:00
mca_32.c
mfgpt_32.c x86, geode-mfgpt: check IRQ before using MFGPT as clocksource 2008-08-15 17:12:32 +02:00
microcode.c cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu 2008-07-26 16:40:33 +02:00
mmconf-fam10h_64.c x86: mmconf: fix section mismatch warning 2008-08-18 07:49:06 +02:00
module_32.c
module_64.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
mpparse.c x86: mpparse.c: fix section mismatch warning 2008-08-18 07:49:26 +02:00
msr.c x86: msr: correct return value on partial operations 2008-08-25 17:46:12 -07:00
nmi.c x86, nmi: clean UP NMI watchdog failure message 2008-08-15 15:35:31 +02:00
numaq_32.c x86: fix BUG: unable to handle kernel paging request (numaq_tsc_disable) 2008-08-21 12:52:01 +02:00
olpc.c
paravirt.c x86: export pv_lock_ops non-GPL 2008-08-21 12:42:23 +02:00
paravirt_patch_32.c
paravirt_patch_64.c
pci-calgary_64.c x86: use WARN() in arch/x86/kernel 2008-08-21 10:01:52 +02:00
pci-dma.c generic, x86: fix add iommu_num_pages helper function 2008-07-29 12:12:48 +02:00
pci-gart_64.c Merge branch 'x86/iommu' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip into for-linus 2008-07-28 14:31:10 -07:00
pci-nommu.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
pci-swiotlb_64.c dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
pcspeaker.c
pmtimer_64.c
probe_roms_32.c
process.c x86: c1e_idle: don't mark TSC unstable if CPU has invariant TSC 2008-09-23 11:38:53 +02:00
process_32.c x86: prevent stale state of c1e_mask across CPU offline/online, fix 2008-09-24 09:30:10 +02:00
process_64.c x86: prevent stale state of c1e_mask across CPU offline/online 2008-09-23 11:38:52 +02:00
ptrace.c
pvclock.c
quirks.c
reboot.c cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu 2008-07-26 16:40:33 +02:00
reboot_fixups_32.c
relocate_kernel_32.S kexec jump: check code size in control page 2008-08-15 08:35:42 -07:00
relocate_kernel_64.S
rtc.c
scx200_32.c
setup.c x86: fix possible x86_64 and EFI regression 2008-09-12 11:40:57 +02:00
setup_percpu.c cpu masks: optimize and clean up cpumask_of_cpu() 2008-07-28 22:20:41 +02:00
sigframe.h
signal_32.c Merge branch 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-07-23 19:36:53 -07:00
signal_64.c x64, fpu: fix possible FPU leakage in error conditions 2008-07-26 16:37:04 +02:00
smp.c
smpboot.c x86: fix section mismatch warning - uv_cpu_init 2008-08-22 14:12:20 +02:00
smpcommon.c x86: change init_gdt to update the gdt via write_gdt, rather than a direct write. 2008-08-15 19:16:05 +02:00
stacktrace.c
step.c
summit_32.c
sys_i386_32.c
sys_x86_64.c
syscall_64.c
syscall_table_32.S flag parameters add-on: remove epoll_create size param 2008-07-24 10:47:29 -07:00
tce_64.c
test_nx.c
test_rodata.c
time_32.c
time_64.c
tlb_32.c
tlb_64.c
tlb_uv.c x86, SGI UV: hardcode the TLB flush interrupt system vector 2008-08-20 12:36:03 +02:00
tls.c
tls.h
topology.c
trampoline.c
trampoline_32.S
trampoline_64.S
traps_32.c
traps_64.c x64, fpu: fix possible FPU leakage in error conditions 2008-07-26 16:37:04 +02:00
tsc.c x86: Change warning message in TSC calibration. 2008-09-03 20:10:37 -07:00
tsc_sync.c x86: use WARN() in arch/x86/kernel 2008-08-21 10:01:52 +02:00
verify_cpu_64.S
visws_quirks.c x86: resurrect proper handling of maxcpus= kernel option (v2) 2008-08-14 11:18:08 +02:00
vm86_32.c
vmi_32.c x86, vmi: fix broken LDT access 2008-09-30 21:13:18 +02:00
vmiclock_32.c
vmlinux.lds.S
vmlinux_32.lds.S kexec jump: check code size in control page 2008-08-15 08:35:42 -07:00
vmlinux_64.lds.S
vsmp_64.c x86: fix 27-rc crash on vsmp due to paravirt during module load 2008-09-23 10:31:26 +02:00
vsyscall_64.c
x8664_ksyms_64.c