summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/mm/init.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-02-13 19:20:45 -0800
committerDavid S. Miller <davem@davemloft.net>2008-04-23 23:32:11 -0700
commitb97094560b991af5c62391014e72bfa4c3a3701f (patch)
treefbdc76cea526c0170982419717b6a3fe6a64c0f3 /arch/sparc64/mm/init.c
parent9422273ba7d139537720c8c47514925d9a621e0d (diff)
[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>
Diffstat (limited to 'arch/sparc64/mm/init.c')
-rw-r--r--arch/sparc64/mm/init.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 90e644a0e93..658ec462ed4 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1208,6 +1208,12 @@ void __init paging_init(void)
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 @@ void __init paging_init(void)
kernel_physical_mapping_init();
- real_setup_per_cpu_areas();
-
prom_build_devicetree();
if (tlb_type == hypervisor)