SRU: Hardy LP Bug #214814 - PCI/ACPI: "BUG: soft lockup - CPU#0 stuck for 61s!"

TJ ubuntu at tjworld.net
Fri Aug 15 06:02:22 UTC 2008


This cherry-pick will fix the issue described in LP Bug #214814 "BUG:
soft lockup - CPU#0 stuck for 61s!". The bug has previously been tagged
for SRU but missed the 8.04.1 milestone. The upstream report is:

http://bugzilla.kernel.org/show_bug.cgi?id=10124

That patch has been tested and confirmed working.

---
commit b87e81e5c6e64ae0eae3b4f61bf07bfeec856184
Author: yakui.zhao at intel.com <yakui.zhao at intel.com>
Date:   Tue Apr 15 14:34:49 2008 -0700

    acpi: unneccessary to scan the PCI bus already scanned
---

Systems based on the Intel 450NX chipset may experience issues where
devices aren't recognised that lead to drivers failing, unhandled IRQs,
and other serious boot failures. The issue is caused because this
chipset has 3 PCI root buses.
When it was first released some operating systems (read: Windows NT)
didn't always correctly discover the 2nd and 3rd PCI buses. As a result
the PCI BIOS tables were 'hacked' to have a fake bridge device on PCI
bus 0 that points to the same bus number as the 1st bus so they would be
scanned correctly by the OS.

As a result, in a well-behaved OS the 2nd and 3rd PCI buses would be
scanned twice. Once as secondaries of the 1st bus, and then as root
buses in their own right. This caused problems with devices being
discovered twice.

Unfortunately, the user's kernel-log report is misleading since the bus
has already been found to be registered and therefore ignored. The
situation can be worked around by booting with "pci=noacpi".

A fix-up for all i450N chipsets was introduced in
arch/i386/pci/fixups.c::pci_fixup_i450nx(). Note: arch/i386 was
refactored to arch/x86/ subsequently. The fix-up checks the PCI config
for the subsidiary buses and if it finds them scans them. This adds them
to the root_pci_bus list. Later in the boot process the ACPI/PCI code
reads the ACPI DSDT table, finds the PCI bus entries (PNP0A03) and tries
to scan them again, leading to the kernel BUG.

This patch ensures that buses already scanned are recognised rather than
ignored.

TJ.
Ubuntu Kernel ACPI Team.





More information about the kernel-team mailing list