arm64: kasan: Use actual memory node when populating the kernel image shadow
authorCatalin Marinas <catalin.marinas@arm.com>
Thu, 10 Mar 2016 18:30:56 +0000 (18:30 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 11 Mar 2016 11:03:34 +0000 (11:03 +0000)
With the 16KB or 64KB page configurations, the generic
vmemmap_populate() implementation warns on potential offnode
page_structs via vmemmap_verify() because the arm64 kasan_init() passes
NUMA_NO_NODE instead of the actual node for the kernel image memory.

Fixes: f9040773b7bb ("arm64: move kernel image to base of vmalloc area")
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: James Morse <james.morse@arm.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
arch/arm64/mm/kasan_init.c

index 56e19d1..a164183 100644 (file)
@@ -152,7 +152,8 @@ void __init kasan_init(void)
 
        clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
 
-       vmemmap_populate(kimg_shadow_start, kimg_shadow_end, NUMA_NO_NODE);
+       vmemmap_populate(kimg_shadow_start, kimg_shadow_end,
+                        pfn_to_nid(virt_to_pfn(_text)));
 
        /*
         * vmemmap_populate() has populated the shadow region that covers the