[SPARC64]: Call real_setup_per_cpu_areas() earlier and use lmb_alloc().

We have to do it like this before we can move the PROM and MDESC device
tree code over to using lmb_alloc().

Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 90e644a..658ec46 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1208,6 +1208,12 @@
 	if (tlb_type == hypervisor)
 		sun4v_ktsb_register();
 
+	/* We must setup the per-cpu areas before we pull in the
+	 * PROM and the MDESC.  The code there fills in cpu and
+	 * other information into per-cpu data structures.
+	 */
+	real_setup_per_cpu_areas();
+
 	/* Setup bootmem... */
 	pages_avail = 0;
 	last_valid_pfn = end_pfn = bootmem_init(&pages_avail, phys_base);
@@ -1216,8 +1222,6 @@
 
 	kernel_physical_mapping_init();
 
-	real_setup_per_cpu_areas();
-
 	prom_build_devicetree();
 
 	if (tlb_type == hypervisor)