浏览代码

[PATCH] powerpc: 64k pages vs. U3 iommu

That DART (U3 iommu) code didn't properly scale the number of entries
when using !4k pages. That caused crashes when booting G5s with more
than 2Gb of RAM. This fixes it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Benjamin Herrenschmidt 19 年之前
父节点
当前提交
47c2ac8cc3
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      arch/powerpc/sysdev/u3_iommu.c

+ 1 - 1
arch/powerpc/sysdev/u3_iommu.c

@@ -226,7 +226,7 @@ static void iommu_table_u3_setup(void)
 	iommu_table_u3.it_busno = 0;
 	iommu_table_u3.it_offset = 0;
 	/* it_size is in number of entries */
-	iommu_table_u3.it_size = dart_tablesize / sizeof(u32);
+	iommu_table_u3.it_size = (dart_tablesize / sizeof(u32)) >> DART_PAGE_FACTOR;
 
 	/* Initialize the common IOMMU code */
 	iommu_table_u3.it_base = (unsigned long)dart_vbase;