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)
committerAlex Shi <alex.shi@linaro.org>
Thu, 12 May 2016 01:04:03 +0000 (09:04 +0800)
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>
(cherry picked from commit 2f76969f2eef051bdd63d38b08d78e790440b0ad)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
arch/arm64/mm/kasan_init.c

index 206dd95ea292f3736a933022056ba20945797250..757009daa9ede454abccbcab6b3a0421a355b49c 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