diff options
Diffstat (limited to 'arch/powerpc/sysdev/dart_iommu.c')
| -rw-r--r-- | arch/powerpc/sysdev/dart_iommu.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c index bd968a43a48..9e5353ff6d1 100644 --- a/arch/powerpc/sysdev/dart_iommu.c +++ b/arch/powerpc/sysdev/dart_iommu.c @@ -292,6 +292,7 @@ static void iommu_table_dart_setup(void)  	iommu_table_dart.it_offset = 0;  	/* it_size is in number of entries */  	iommu_table_dart.it_size = dart_tablesize / sizeof(u32); +	iommu_table_dart.it_page_shift = IOMMU_PAGE_SHIFT_4K;  	/* Initialize the common IOMMU code */  	iommu_table_dart.it_base = (unsigned long)dart_vbase; @@ -475,6 +476,11 @@ void __init alloc_dart_table(void)  	 */  	dart_tablebase = (unsigned long)  		__va(memblock_alloc_base(1UL<<24, 1UL<<24, 0x80000000L)); +	/* +	 * The DART space is later unmapped from the kernel linear mapping and +	 * accessing dart_tablebase during kmemleak scanning will fault. +	 */ +	kmemleak_no_scan((void *)dart_tablebase);  	printk(KERN_INFO "DART table allocated at: %lx\n", dart_tablebase);  }  | 
