To optimize the performance of struct page initialization,
vmemmap_populate() will no longer zero memory.

Therefore, we must use a new interface to allocate and map kasan shadow
memory, that also zeroes memory for us.

Signed-off-by: Pavel Tatashin <pasha.tatas...@oracle.com>
---
 arch/arm64/mm/kasan_init.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c
index 81f03959a4ab..b6e92cfa3ea3 100644
--- a/arch/arm64/mm/kasan_init.c
+++ b/arch/arm64/mm/kasan_init.c
@@ -161,11 +161,11 @@ void __init kasan_init(void)
 
        clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
 
-       vmemmap_populate(kimg_shadow_start, kimg_shadow_end,
-                        pfn_to_nid(virt_to_pfn(lm_alias(_text))));
+       kasan_map_populate(kimg_shadow_start, kimg_shadow_end,
+                          pfn_to_nid(virt_to_pfn(lm_alias(_text))));
 
        /*
-        * vmemmap_populate() has populated the shadow region that covers the
+        * kasan_map_populate() has populated the shadow region that covers the
         * kernel image with SWAPPER_BLOCK_SIZE mappings, so we have to round
         * the start and end addresses to SWAPPER_BLOCK_SIZE as well, to prevent
         * kasan_populate_zero_shadow() from replacing the page table entries
@@ -191,9 +191,9 @@ void __init kasan_init(void)
                if (start >= end)
                        break;
 
-               vmemmap_populate((unsigned long)kasan_mem_to_shadow(start),
-                               (unsigned long)kasan_mem_to_shadow(end),
-                               pfn_to_nid(virt_to_pfn(start)));
+               kasan_map_populate((unsigned long)kasan_mem_to_shadow(start),
+                                  (unsigned long)kasan_mem_to_shadow(end),
+                                  pfn_to_nid(virt_to_pfn(start)));
        }
 
        /*
-- 
2.14.2

Reply via email to