From: Grant Grundler <grundler@parisc-linux.org>
To: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-pci@vger.kernel.org, "Barnes,
Jesse" <jesse.barnes@intel.com>,
shaohua.li@intel.com
Subject: Re: ACPI hotplug panic with current git head
Date: Sun, 25 Jan 2009 23:21:32 -0700 [thread overview]
Message-ID: <20090126062132.GC4376@colo.lackof.org> (raw)
In-Reply-To: <497D1BD7.9000609@jp.fujitsu.com>
On Mon, Jan 26, 2009 at 11:11:35AM +0900, Kenji Kaneshige wrote:
...
> Thanks to you, I found the root cause of the
> problem. The acpi_pci_get_bridge_handle() function assumes
> pci_bus->self is NULL on the root bus.
Mea culpa: I contributed this mess too. This worked for PA-RISC
and lacking better guidance, is what I used in 1/2 the places.
> But it is not true
> and pci_bus->self can have a non-NULL value on some
> platfroms (like yours). So it must check pci_bus->parent
> instead.
It is true for PA-RISC and some other architectures.
These architectures don't provide fake PCI devices
(emulated PCI config space) for Host-PCI Bus controllers.
> I found some other code that has the same wrong assumption.
> I'll make a fix for them and send it soon.
I would like to keep the code consistent. Attached is a patch
for drivers/parisc. Please include with my
Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Or if you prefer, I can repost as a separate patch.
I've compiled the iosapic/lba changes and will test those shortly.
I have no HW (by choice) to test the dino code change.
thanks,
grant
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index d539d9d..f79266c 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -587,7 +587,7 @@ dino_fixup_bus(struct pci_bus *bus)
bus->resource[i+1] = &res[i];
}
- } else if(bus->self) {
+ } else if (bus->parent) {
int i;
pci_read_bridge_bases(bus);
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
index 0797659..1cdfdea 100644
--- a/drivers/parisc/iosapic.c
+++ b/drivers/parisc/iosapic.c
@@ -487,7 +487,7 @@ iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev)
}
/* Check if pcidev behind a PPB */
- if (NULL != pcidev->bus->self) {
+ if (pcidev->bus->parent) {
/* Convert pcidev INTR_PIN into something we
** can lookup in the IRT.
*/
@@ -523,10 +523,9 @@ iosapic_xlate_pin(struct iosapic_info *isi, struct pci_dev *pcidev)
#endif /* PCI_BRIDGE_FUNCS */
/*
- ** Locate the host slot the PPB nearest the Host bus
- ** adapter.
- */
- while (NULL != p->parent->self)
+ * Locate the host slot of the PPB.
+ */
+ while (p->parent->parent)
p = p->parent;
intr_slot = PCI_SLOT(p->self->devfn);
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index d8233de..59fbbf1 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -644,7 +644,7 @@ lba_fixup_bus(struct pci_bus *bus)
** Properly Setup MMIO resources for this bus.
** pci_alloc_primary_bus() mangles this.
*/
- if (bus->self) {
+ if (bus->parent) {
int i;
/* PCI-PCI Bridge */
pci_read_bridge_bases(bus);
@@ -802,7 +802,7 @@ lba_fixup_bus(struct pci_bus *bus)
** Can't fixup here anyway....garr...
*/
if (fbb_enable) {
- if (bus->self) {
+ if (bus->parent) {
u8 control;
/* enable on PPB */
(void) pci_read_config_byte(bus->self, PCI_BRIDGE_CONTROL, &control);
next prev parent reply other threads:[~2009-01-26 6:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-10 16:17 ACPI hotplug panic with current git head James Bottomley
2009-01-12 21:16 ` Len Brown
2009-01-13 0:48 ` James Bottomley
2009-01-13 3:40 ` Len Brown
2009-01-15 19:01 ` James Bottomley
2009-01-15 19:22 ` Len Brown
2009-01-15 19:54 ` James Bottomley
2009-01-15 20:12 ` James Bottomley
2009-01-16 6:07 ` Kenji Kaneshige
2009-01-16 14:19 ` James Bottomley
2009-01-19 1:10 ` Kenji Kaneshige
2009-01-19 1:23 ` James Bottomley
2009-01-19 3:11 ` Kenji Kaneshige
2009-01-21 17:26 ` James Bottomley
2009-01-26 2:11 ` Kenji Kaneshige
2009-01-26 6:21 ` Grant Grundler [this message]
2009-01-26 12:27 ` Kenji Kaneshige
2009-01-28 11:47 ` Kenji Kaneshige
2009-01-28 11:48 ` [PATCH 1/8] PCI/ACPI: fix wrong assumption in acpi_pci_get_bridge_handle Kenji Kaneshige
2009-01-28 11:50 ` [PATCH 2/8] PCI/ACPI: fix wrong assumption in acpi_find_root_bridge_handle Kenji Kaneshige
2009-01-28 11:51 ` [PATCH 3/8] PCI hotplug: fix wrong assumption in acpi_get_hp_params_from_firmware Kenji Kaneshige
2009-01-28 11:55 ` [PATCH 4/8] PCI hotplug: fix wrong assumption in acpi_get_hp_hw_control_from_firmware Kenji Kaneshige
2009-01-28 11:56 ` [PATCH 5/8] PCI: fix wrong assumption in pci_find_upstream_pcie_bridge Kenji Kaneshige
2009-01-28 11:57 ` [PATCH 6/8] PCI: fix wrong assumption in pci_read_bridge_bases Kenji Kaneshige
2009-01-28 11:58 ` [PATCH 7/8] PCI: fix wrong assumption in pci_get_interrupt_pin Kenji Kaneshige
2009-01-28 11:59 ` [PATCH 8/8] PCI: fix wrong assumption in pci_common_swizzle Kenji Kaneshige
2009-01-28 12:05 ` ACPI hotplug panic with current git head Kenji Kaneshige
2009-02-14 0:30 ` Jesse Barnes
[not found] ` <499A46CC.1020102@jp.fujitsu.com>
2009-02-18 18:59 ` Jesse Barnes
2009-02-18 19:08 ` James Bottomley
2009-02-18 19:41 ` Jesse Barnes
2009-03-02 17:07 ` James Bottomley
2009-01-16 20:08 ` Len Brown
2009-01-16 20:22 ` Jesse Barnes
2009-01-19 1:15 ` Kenji Kaneshige
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090126062132.GC4376@colo.lackof.org \
--to=grundler@parisc-linux.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=jesse.barnes@intel.com \
--cc=kaneshige.kenji@jp.fujitsu.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=shaohua.li@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox