More fallout from the switch from PAGE_SIZE based IOMMU to the native page
size for the driver. By pure luck it happened to work most of the time, since
we end up invalidating the wrong entries in the TLB.

Signed-off-by: Olof Johansson <[EMAIL PROTECTED]>


Index: linux-2.6/arch/powerpc/platforms/pasemi/iommu.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/pasemi/iommu.c
+++ linux-2.6/arch/powerpc/platforms/pasemi/iommu.c
@@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_ta
 
        pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, 
uaddr);
 
-       bus_addr = (tbl->it_offset + index) << PAGE_SHIFT;
+       bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
 
        ip = ((u32 *)tbl->it_base) + index;
 
@@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_tab
 
        pr_debug("iobmap: free at: %lx, %lx\n", index, npages);
 
-       bus_addr = (tbl->it_offset + index) << PAGE_SHIFT;
+       bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
 
        ip = ((u32 *)tbl->it_base) + index;
 
@@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(voi
        iommu_table_iobmap.it_busno = 0;
        iommu_table_iobmap.it_offset = 0;
        /* it_size is in number of entries */
-       iommu_table_iobmap.it_size = 0x80000000 >> PAGE_SHIFT;
+       iommu_table_iobmap.it_size = 0x80000000 >> IOBMAP_PAGE_SHIFT;
 
        /* Initialize the common IOMMU code */
        iommu_table_iobmap.it_base = (unsigned long)iob_l2_base;
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to