arm64: mm: omit redundant remap of kernel image
[sfrench/cifs-2.6.git] / arch / arm64 / kernel / pi / map_kernel.c
index f86e878d366de6f58e6c960ac3a494620efe2d98..4b76a007a50dc1a2fae1d4abec48f8d703611494 100644 (file)
@@ -124,8 +124,12 @@ static void __init map_kernel(u64 kaslr_offset, u64 va_offset, int root_level)
                            text_prot, true, root_level);
                map_segment(init_pg_dir, NULL, va_offset, __inittext_begin,
                            __inittext_end, text_prot, false, root_level);
-               dsb(ishst);
        }
+
+       /* Copy the root page table to its final location */
+       memcpy((void *)swapper_pg_dir + va_offset, init_pg_dir, PGD_SIZE);
+       dsb(ishst);
+       idmap_cpu_replace_ttbr1(swapper_pg_dir);
 }
 
 static void __init map_fdt(u64 fdt)