OSDN Git Service

powerpc/8xx: Map IMMR with a huge page
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Tue, 19 May 2020 05:49:23 +0000 (05:49 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 26 May 2020 12:22:22 +0000 (22:22 +1000)
Map the IMMR area with a single 512k huge page.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/9495dba06669da40e133f24607758fa6dcc65f66.1589866984.git.christophe.leroy@csgroup.eu
arch/powerpc/mm/nohash/8xx.c

index 72fb75f..f8fff1f 100644 (file)
@@ -118,17 +118,13 @@ static bool immr_is_mapped __initdata;
 
 void __init mmu_mapin_immr(void)
 {
-       unsigned long p = PHYS_IMMR_BASE;
-       unsigned long v = VIRT_IMMR_BASE;
-       int offset;
-
        if (immr_is_mapped)
                return;
 
        immr_is_mapped = true;
 
-       for (offset = 0; offset < IMMR_SIZE; offset += PAGE_SIZE)
-               map_kernel_page(v + offset, p + offset, PAGE_KERNEL_NCG);
+       __early_map_kernel_hugepage(VIRT_IMMR_BASE, PHYS_IMMR_BASE,
+                                   PAGE_KERNEL_NCG, MMU_PAGE_512K, true);
 }
 
 unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)