powerpc/mm/radix: Use the right page size for vmemmap mapping
[linux-2.6-block.git] / arch / powerpc / mm / book3s64 / radix_pgtable.c
index 8904aa1243d8063a55db832ab52e6a963f289a1b..b573fa024b3291b2ce9a0184fdb5d6e980d7d1b0 100644 (file)
@@ -520,14 +520,6 @@ void __init radix__early_init_devtree(void)
        mmu_psize_defs[MMU_PAGE_64K].shift = 16;
        mmu_psize_defs[MMU_PAGE_64K].ap = 0x5;
 found:
-#ifdef CONFIG_SPARSEMEM_VMEMMAP
-       if (mmu_psize_defs[MMU_PAGE_2M].shift) {
-               /*
-                * map vmemmap using 2M if available
-                */
-               mmu_vmemmap_psize = MMU_PAGE_2M;
-       }
-#endif /* CONFIG_SPARSEMEM_VMEMMAP */
        return;
 }
 
@@ -592,7 +584,13 @@ void __init radix__early_init_mmu(void)
 
 #ifdef CONFIG_SPARSEMEM_VMEMMAP
        /* vmemmap mapping */
-       mmu_vmemmap_psize = mmu_virtual_psize;
+       if (mmu_psize_defs[MMU_PAGE_2M].shift) {
+               /*
+                * map vmemmap using 2M if available
+                */
+               mmu_vmemmap_psize = MMU_PAGE_2M;
+       } else
+               mmu_vmemmap_psize = mmu_virtual_psize;
 #endif
        /*
         * initialize page table size