Skip to content

Commit

Permalink
[POWERPC] pasemi: Another IOMMU bugfix for 64K PAGE_SIZE
Browse files Browse the repository at this point in the history
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 <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Olof Johansson authored and Paul Mackerras committed Aug 25, 2007
1 parent 1a8f461 commit dfa70f8
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions arch/powerpc/platforms/pasemi/iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_table *tbl, long index,

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;

Expand All @@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_table *tbl, long index,

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;

Expand All @@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(void)
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;
Expand Down

0 comments on commit dfa70f8

Please sign in to comment.