Skip to content

Commit

Permalink
parisc: fix wrong assumption about bus->self
Browse files Browse the repository at this point in the history
Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> posted a patch series
to linux-pci to fix a wrong assumption about pci_bus->self==NULL for
all PCI host bus controllers. While PARISC platforms to not behave
this way, I prefer to have the code consistent across architectures.
The following patch replaces pci_bus->self with pci_bus->parent when
used as a test to check for "root bus controller".

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
  • Loading branch information
Grant Grundler authored and Kyle McMartin committed Mar 13, 2009
1 parent c1da90f commit 9785d64
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
2 changes: 1 addition & 1 deletion drivers/parisc/dino.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
9 changes: 4 additions & 5 deletions drivers/parisc/iosapic.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*/
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions drivers/parisc/lba_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 9785d64

Please sign in to comment.