linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 09/12] Fix incorrect handling PCI-Express Root Bridge _HID
@ 2006-10-10 21:20 akpm
  2006-10-14  8:07 ` Len Brown
  0 siblings, 1 reply; 2+ messages in thread
From: akpm @ 2006-10-10 21:20 UTC (permalink / raw)
  To: len.brown; +Cc: linux-acpi, akpm, eiichiro.oiwa.nm

From: <eiichiro.oiwa.nm@hitachi.com>

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@intel.com>
Cc: <linux-acpi@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/acpi/events/evrgnini.c |    4 ++--
 1 files 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 */
_

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [patch 09/12] Fix incorrect handling PCI-Express Root Bridge _HID
  2006-10-10 21:20 [patch 09/12] Fix incorrect handling PCI-Express Root Bridge _HID akpm
@ 2006-10-14  8:07 ` Len Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Len Brown @ 2006-10-14  8:07 UTC (permalink / raw)
  To: akpm; +Cc: linux-acpi, eiichiro.oiwa.nm

This was applied to (2.6.20-bound) ACPICA, and I've cherry-picked it
to apply to 2.6.19, and will send it to stable as well.

thanks,
-Len

On Tuesday 10 October 2006 17:20, akpm@osdl.org wrote:
> From: <eiichiro.oiwa.nm@hitachi.com>
> 
> 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@intel.com>
> Cc: <linux-acpi@vger.kernel.org>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
> ---
> 
>  drivers/acpi/events/evrgnini.c |    4 ++--
>  1 files 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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-10-14  8:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-10 21:20 [patch 09/12] Fix incorrect handling PCI-Express Root Bridge _HID akpm
2006-10-14  8:07 ` Len Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).