Re:[patch 10/10] Fix incorrect handling PCI-Express Root Bridge _HID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andrew,

We need this patch for APCI hotplug because APCI parser gets bus number from acpi_object_extra. I already tested this patch by ACPI hotplug, and confirmed there is no problem on our box has described PCI topology.
I don't have git rights.
Could you merge this patch into Linus's tree?

Thanks,
Eiichiro Oiwa

>From: <eiichiro.oiwa.nm@xxxxxxxxxxx>
>
>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" <len.brown@xxxxxxxxx>
>Cc: <linux-acpi@xxxxxxxxxxxxxxx>
>Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
>---
>
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux