diff options
author | David S. Miller <davem@davemloft.net> | 2009-06-18 04:44:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-19 02:50:41 -0400 |
commit | b99c6ebe8f53dce1f56f0d483f6a7c23edb19d4c (patch) | |
tree | b627f81db133b9463ac206e4e8327ee530ba0b81 /arch | |
parent | aaa7e2f74f11b5f7e30483807b896d7b3369586f (diff) |
sparc64: Fix UP bootup regression.
Commit b696fdc259f0d94348a9327bed352fac44d4883d ("sparc64: Defer
cpu_data() setup until end of per-cpu data initialization.") broke
bootup for UP builds because the cpu_data() initialization only
occurs in setup_per_cpu_areas() which is never compiled in nor
called in UP builds.
Fix this up by calling the setups directly from init_64.c when
non-SMP.
Reported-by: Alexander Beregalov <a.beregalov@gmail.com>
Tested-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sparc/mm/init_64.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index ca92e2f54e4d..ed6be6ba2f4e 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c | |||
@@ -1796,10 +1796,16 @@ void __init paging_init(void) | |||
1796 | 1796 | ||
1797 | prom_build_devicetree(); | 1797 | prom_build_devicetree(); |
1798 | of_populate_present_mask(); | 1798 | of_populate_present_mask(); |
1799 | #ifndef CONFIG_SMP | ||
1800 | of_fill_in_cpu_data(); | ||
1801 | #endif | ||
1799 | 1802 | ||
1800 | if (tlb_type == hypervisor) { | 1803 | if (tlb_type == hypervisor) { |
1801 | sun4v_mdesc_init(); | 1804 | sun4v_mdesc_init(); |
1802 | mdesc_populate_present_mask(cpu_all_mask); | 1805 | mdesc_populate_present_mask(cpu_all_mask); |
1806 | #ifndef CONFIG_SMP | ||
1807 | mdesc_fill_in_cpu_data(cpu_all_mask); | ||
1808 | #endif | ||
1803 | } | 1809 | } |
1804 | 1810 | ||
1805 | /* Once the OF device tree and MDESC have been setup, we know | 1811 | /* Once the OF device tree and MDESC have been setup, we know |