Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/kmemleak: Do not scan the DART table

The DART table allocation is registered to kmemleak via the
memblock_alloc_base() call. However, the DART table is later unmapped
and dart_tablebase VA no longer accessible. This patch tells kmemleak
not to scan this block and avoid an unhandled paging request.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Catalin Marinas and committed by
Benjamin Herrenschmidt
a1d23d5c aa83f3d8

+5
+5
arch/powerpc/sysdev/dart_iommu.c
··· 476 476 */ 477 477 dart_tablebase = (unsigned long) 478 478 __va(memblock_alloc_base(1UL<<24, 1UL<<24, 0x80000000L)); 479 + /* 480 + * The DART space is later unmapped from the kernel linear mapping and 481 + * accessing dart_tablebase during kmemleak scanning will fault. 482 + */ 483 + kmemleak_no_scan((void *)dart_tablebase); 479 484 480 485 printk(KERN_INFO "DART table allocated at: %lx\n", dart_tablebase); 481 486 }