From: <[EMAIL PROTECTED]>
Lifted from http://bugzilla.kernel.org/show_bug.cgi?id=7145
PCI Bus Topology:
[CPU] [CPU] [CPU] [CPU]
| |BUS | | BUS
--+--+---+--- --+--+--+------
| |
[Root Bridge]*1-----[Root Bridge]*1
| | \ \
[Bridge] | [PCI-e slot] [PCI-e slot]
| | [PCI-e slot]
| \
| [PCI-e slot]
|
|
[PCI Bridge]
| \
| [PCI-X slot]
|
[PCI-X slot]
*1: PCI Express Root Bridge.
I could not get correct PCI Express BUS number from the structure of
acpi_object_extra. I always get zero as BUS number regardless of BUS
location. I found that there is incorrect comparison with _HID (PNP0A08)
in acpi/events/evrgnini.c and PCI Express _BBN method always fail.
Therefore, we get always get zero as PCI Express bus number.
I suggest the following patch.
Cc: "Brown, Len" <[EMAIL PROTECTED]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
drivers/acpi/events/evrgnini.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff -puN
drivers/acpi/events/evrgnini.c~fix-incorrect-handling-of-pci-express-root-bridge-_hid
drivers/acpi/events/evrgnini.c
---
a/drivers/acpi/events/evrgnini.c~fix-incorrect-handling-of-pci-express-root-bridge-_hid
+++ a/drivers/acpi/events/evrgnini.c
@@ -225,12 +225,12 @@ acpi_ev_pci_config_region_setup(acpi_han
if (!
(ACPI_STRNCMP
(object_hID.value, PCI_ROOT_HID_STRING,
- sizeof(PCI_ROOT_HID_STRING))
+ sizeof(PCI_ROOT_HID_STRING)))
||
!(ACPI_STRNCMP
(object_hID.value,
PCI_EXPRESS_ROOT_HID_STRING,
- sizeof(PCI_EXPRESS_ROOT_HID_STRING)))))
+ sizeof(PCI_EXPRESS_ROOT_HID_STRING))))
{
/* Install a handler for this PCI root
bridge */
_
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html