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

Bug #258143 reported by Tim Gardner on 2008-08-15
32
This bug affects 6 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Unassigned
Hardy
Medium
Tim Gardner

Bug Description

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.

Tim Gardner (timg-tpi) wrote :

SRU Justification:

Impact: Some machines will not boot with ACPI enabled

Patch Description: Check that the root PCI bus has already been scanned.

Patch: http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-hardy.git;a=commit;h=4469fffe7db317faf023fa24fe87a900af0c3524

Test Case: see bug desciption

Tim Gardner (timg-tpi) wrote :
Changed in linux:
assignee: nobody → timg-tpi
importance: Undecided → Medium
milestone: none → ubuntu-8.04.2
status: New → Fix Committed
Tim Gardner (timg-tpi) wrote :

Does not affect Intrepid.

Changed in linux:
importance: Undecided → Medium
milestone: none → ubuntu-8.04.2
status: New → Fix Committed
Steve Langasek (vorlon) wrote :

Accepted into -proposed, please test and give feedback here. Please see https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

kacpi_notify seems to run very often on my (once server, now) desktop PC.

The computer used to lock up completely, but not it only runs kacpi_notify every 10 seconds for about 20 seconds.

I'm running Ubuntu 8.04.1 (fresh install) and have my computer's details here: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/214814

I'll try activating proposed and testing the new kernel.

Martin Pitt (pitti) wrote :

linux 2.6.24-21 copied to hardy-updates.

Changed in linux:
status: Fix Committed → Fix Released

Actively developed Jaunty kernel already has this patch by default. Flipping status from Fix Committed to Fix Released.

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers