Most recent kernel where this bug did not occur: In most recent kernel, this bug occurs. Hardware Environment: 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. Problem Description: 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. --- linux-2.6.17.13.org/drivers/acpi/events/evrgnini.c 2006-09-09 12:23:25.000000000 +0900 +++ linux-2.6.17.13/drivers/acpi/events/evrgnini.c 2006-09-11 11:34:16.625000000 +0900 @@ -213,12 +213,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 */
Your patch looks correct and will be integrated into the next release of ACPICA.
It is good. Thank you.
Integrated and released in ACPICA version 20060912
Thank you.
this patch shipped in Linux-2.6.19. closed.