powerpc: Little endian fix for arch/powerpc/platforms/powernv/pci.c
authorAlistair Popple <alistair@popple.id.au>
Mon, 23 Sep 2013 02:04:55 +0000 (12:04 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 11 Oct 2013 05:48:42 +0000 (16:48 +1100)
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/powernv/pci.c

index a28d3b5e6393fa8b9d9d11bc81210ab9db13f38b..912221565c5c5043969fb92006d7fbfba9e6ef17 100644 (file)
@@ -462,8 +462,8 @@ void pnv_pci_setup_iommu_table(struct iommu_table *tbl,
 static struct iommu_table *pnv_pci_setup_bml_iommu(struct pci_controller *hose)
 {
        struct iommu_table *tbl;
-       const __be64 *basep, *swinvp;
-       const __be32 *sizep;
+       const __be64 *basep;
+       const __be32 *sizep, *swinvp;
 
        basep = of_get_property(hose->dn, "linux,tce-base", NULL);
        sizep = of_get_property(hose->dn, "linux,tce-size", NULL);
@@ -484,8 +484,9 @@ static struct iommu_table *pnv_pci_setup_bml_iommu(struct pci_controller *hose)
        swinvp = of_get_property(hose->dn, "linux,tce-sw-invalidate-info",
                                 NULL);
        if (swinvp) {
-               tbl->it_busno = swinvp[1];
-               tbl->it_index = (unsigned long)ioremap(swinvp[0], 8);
+               tbl->it_busno = of_read_ulong(&swinvp[1], 2);
+               tbl->it_index =
+                       (unsigned long)ioremap(of_read_number(swinvp, 2), 8);
                tbl->it_type = TCE_PCI_SWINV_CREATE | TCE_PCI_SWINV_FREE;
        }
        return tbl;