Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  * Entries per page directory level: we use two-level, so
  * we don't really have any PUD/PMD directory physically.
  */
-#ifdef CONFIG_64BIT_PHYS_ADDR
-#define PGD_ORDER      1
-#define PUD_ORDER      aieeee_attempt_to_allocate_pud
-#define PMD_ORDER      1
-#define PTE_ORDER      0
-#else
-#define PGD_ORDER      0
+#define __PGD_ORDER    (32 - 3 * PAGE_SHIFT + PGD_T_LOG2 + PTE_T_LOG2)
+#define PGD_ORDER      (__PGD_ORDER >= 0 ? __PGD_ORDER : 0)
 #define PUD_ORDER      aieeee_attempt_to_allocate_pud
 #define PMD_ORDER      1
 #define PTE_ORDER      0
-#endif
 
 #define PTRS_PER_PGD   ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t))
 #define PTRS_PER_PTE   ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t))