]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/powerpc/mm/kasan/kasan_init_32.c
powerpc/32s: Fix kasan_early_hash_table() for CONFIG_VMAP_STACK
[linux.git] / arch / powerpc / mm / kasan / kasan_init_32.c
index d3cacd4625605a4b6c855b620c5c76ca973bc83d..16dd95bd0749d851410fce5ae727a0e9edfdb563 100644 (file)
@@ -185,8 +185,11 @@ u8 __initdata early_hash[256 << 10] __aligned(256 << 10) = {0};
 
 static void __init kasan_early_hash_table(void)
 {
-       modify_instruction_site(&patch__hash_page_A0, 0xffff, __pa(early_hash) >> 16);
-       modify_instruction_site(&patch__flush_hash_A0, 0xffff, __pa(early_hash) >> 16);
+       unsigned int hash = IS_ENABLED(CONFIG_VMAP_STACK) ? (unsigned int)early_hash :
+                                                           __pa(early_hash);
+
+       modify_instruction_site(&patch__hash_page_A0, 0xffff, hash >> 16);
+       modify_instruction_site(&patch__flush_hash_A0, 0xffff, hash >> 16);
 
        Hash = (struct hash_pte *)early_hash;
 }