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

Reply via email to