aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/setup_32.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2008-12-18 14:13:48 -0500
committerPaul Mackerras <paulus@samba.org>2008-12-20 22:21:16 -0500
commit77520351805cc19ba37394ae33f862ef6d3c2a23 (patch)
tree4bb26bea674835683a2da53cd84efa782425d570 /arch/powerpc/kernel/setup_32.c
parent760ec0e02d8a13d0ed60d99f47879d4aa8ef1910 (diff)
powerpc/mm: Runtime allocation of mmu context maps for nohash CPUs
This makes the MMU context code used for CPUs with no hash table (except 603) dynamically allocate the various maps used to track the state of contexts. Only the main free map and CPU 0 stale map are allocated at boot time. Other CPU maps are allocated when those CPUs are brought up and freed if they are unplugged. This also moves the initialization of the MMU context management slightly later during the boot process, which should be fine as it's really only needed when userland if first started anyways. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/setup_32.c')
-rw-r--r--arch/powerpc/kernel/setup_32.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index b14c2a3e2185..d72ef39f2b37 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -38,6 +38,7 @@
38#include <asm/time.h> 38#include <asm/time.h>
39#include <asm/serial.h> 39#include <asm/serial.h>
40#include <asm/udbg.h> 40#include <asm/udbg.h>
41#include <asm/mmu_context.h>
41 42
42#include "setup.h" 43#include "setup.h"
43 44
@@ -330,4 +331,8 @@ void __init setup_arch(char **cmdline_p)
330 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab); 331 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab);
331 332
332 paging_init(); 333 paging_init();
334
335 /* Initialize the MMU context management stuff */
336 mmu_context_init();
337
333} 338}