powerpc/mm: Do radix device tree scanning earlier
authorMichael Ellerman <mpe@ellerman.id.au>
Tue, 26 Jul 2016 11:55:27 +0000 (21:55 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 1 Aug 2016 01:14:55 +0000 (11:14 +1000)
Like we just did for hash, split the device tree scanning parts out and
call them from mmu_early_init_devtree().

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/book3s/64/mmu.h
arch/powerpc/mm/init_64.c
arch/powerpc/mm/pgtable-radix.c

index 358f1410dc0d04cbf54a791bcf2374217551ff6c..9ee00c2576d05242181264ec4b230221f3e575f2 100644 (file)
@@ -109,6 +109,7 @@ extern int mmu_io_psize;
 /* MMU initialization */
 void mmu_early_init_devtree(void);
 void hash__early_init_devtree(void);
+void radix__early_init_devtree(void);
 extern void radix_init_native(void);
 extern void hash__early_init_mmu(void);
 extern void radix__early_init_mmu(void);
index d023333c6c9a0c3ed9968a634c8b79cbe41768c0..e0ab33d20a1052b86983146001b394dd0459b9c6 100644 (file)
@@ -427,7 +427,9 @@ void __init mmu_early_init_devtree(void)
        if (disable_radix)
                cur_cpu_spec->mmu_features &= ~MMU_FTR_RADIX;
 
-       if (!radix_enabled())
+       if (radix_enabled())
+               radix__early_init_devtree();
+       else
                hash__early_init_devtree();
 }
 #endif /* CONFIG_PPC_STD_MMU_64 */
index 003ff48a11b6212888fac831ad8ab7057d2e84cd..f34ccdbe0fbdf354853fd74d31874ec7a58306dc 100644 (file)
@@ -264,7 +264,7 @@ static int __init radix_dt_scan_page_sizes(unsigned long node,
        return 1;
 }
 
-static void __init radix_init_page_sizes(void)
+void __init radix__early_init_devtree(void)
 {
        int rc;
 
@@ -343,7 +343,6 @@ void __init radix__early_init_mmu(void)
        __pte_frag_nr = H_PTE_FRAG_NR;
        __pte_frag_size_shift = H_PTE_FRAG_SIZE_SHIFT;
 
-       radix_init_page_sizes();
        if (!firmware_has_feature(FW_FEATURE_LPAR)) {
                radix_init_native();
                lpcr = mfspr(SPRN_LPCR);