aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2008-04-18 02:56:15 -0400
committerPaul Mackerras <paulus@samba.org>2008-04-24 06:57:33 -0400
commit8c9843e57a7d9d7a090d6467a0f1f3afb8031527 (patch)
tree5efdab577853bc92e3c980fc97aba74be58c1efb
parent1d32e21889b96e594e8b63b193bf7d2a51ab93ec (diff)
[POWERPC] Add thread_info_cache_init() weak hook
Some architectures need to maintain a kmem cache for thread info structures. The next commit adds that to powerpc to fix an alignment problem. There is no good arch callback to use to initialize that cache that I can find, so this adds a new one in the form of a weak function whose default is empty. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--include/linux/sched.h2
-rw-r--r--init/main.c5
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 311380e5fe89..d0bd97044abd 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1926,6 +1926,8 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
1926 1926
1927#endif 1927#endif
1928 1928
1929extern void thread_info_cache_init(void);
1930
1929/* set thread flags in other task's structures 1931/* set thread flags in other task's structures
1930 * - see asm/thread_info.h for TIF_xxxx flags available 1932 * - see asm/thread_info.h for TIF_xxxx flags available
1931 */ 1933 */
diff --git a/init/main.c b/init/main.c
index 833a67df1f7e..507c9fba03bb 100644
--- a/init/main.c
+++ b/init/main.c
@@ -525,6 +525,10 @@ void __init __attribute__((weak)) smp_setup_processor_id(void)
525{ 525{
526} 526}
527 527
528void __init __weak thread_info_cache_init(void)
529{
530}
531
528asmlinkage void __init start_kernel(void) 532asmlinkage void __init start_kernel(void)
529{ 533{
530 char * command_line; 534 char * command_line;
@@ -645,6 +649,7 @@ asmlinkage void __init start_kernel(void)
645 if (efi_enabled) 649 if (efi_enabled)
646 efi_enter_virtual_mode(); 650 efi_enter_virtual_mode();
647#endif 651#endif
652 thread_info_cache_init();
648 fork_init(num_physpages); 653 fork_init(num_physpages);
649 proc_caches_init(); 654 proc_caches_init();
650 buffer_init(); 655 buffer_init();