diff mbox

[2/2] powerpc/cell: Fix iommu breakage caused by controller_ops change

Message ID 1428994146-23180-2-git-send-email-mpe@ellerman.id.au (mailing list archive)
State Accepted
Commit 4acd09b4bfd4a653fcf02e422890d98764c0f1ff
Headers show

Commit Message

Michael Ellerman April 14, 2015, 6:49 a.m. UTC
The recent patch to convert cell to use pci_controller_ops had a small
bug which broke machines using an iommu.

The set of phb->controller_ops was added after the check for name !=
"pci", meaning pcix/pcie PHBs weren't getting their ops set correctly.

Fixes: 9c1368fc50e7 ("powerpc/cell: Move controller ops from ppc_md to controller_ops")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/platforms/cell/setup.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Daniel Axtens April 14, 2015, 10:46 p.m. UTC | #1
On Tue, 2015-04-14 at 16:49 +1000, Michael Ellerman wrote:
> The recent patch to convert cell to use pci_controller_ops had a small
> bug which broke machines using an iommu.
> 
Oops.

> The set of phb->controller_ops was added after the check for name !=
> "pci", meaning pcix/pcie PHBs weren't getting their ops set correctly.
> 
> Fixes: 9c1368fc50e7 ("powerpc/cell: Move controller ops from ppc_md to controller_ops")
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>


Thanks for that.

Acked-by: Daniel Axtens <dja@axtens.net>

Regards,
Daniel
diff mbox

Patch

diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c
index d1be268b1e6e..36cff28d0293 100644
--- a/arch/powerpc/platforms/cell/setup.c
+++ b/arch/powerpc/platforms/cell/setup.c
@@ -127,13 +127,13 @@  static int cell_setup_phb(struct pci_controller *phb)
 	if (rc)
 		return rc;
 
+	phb->controller_ops = cell_pci_controller_ops;
+
 	np = phb->dn;
 	model = of_get_property(np, "model", NULL);
 	if (model == NULL || strcmp(np->name, "pci"))
 		return 0;
 
-	phb->controller_ops = cell_pci_controller_ops;
-
 	/* Setup workarounds for spider */
 	if (strcmp(model, "Spider"))
 		return 0;