diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2008-07-25 04:45:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 13:53:28 -0400 |
commit | b69c49b78457f681ecfb3147bd968434ee6559c1 (patch) | |
tree | 9557c950c21cf4336ccc403136ea11384150af31 /kernel/fork.c | |
parent | 62ec30d45ecbb85b5991474c8f04192697687495 (diff) |
clean up duplicated alloc/free_thread_info
We duplicate alloc/free_thread_info defines on many platforms (the
majority uses __get_free_pages/free_pages). This patch defines common
defines and removes these duplicated defines.
__HAVE_ARCH_THREAD_INFO_ALLOCATOR is introduced for platforms that do
something different.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 552c8d8e77ad..5a5d6fef341d 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -93,6 +93,23 @@ int nr_processes(void) | |||
93 | static struct kmem_cache *task_struct_cachep; | 93 | static struct kmem_cache *task_struct_cachep; |
94 | #endif | 94 | #endif |
95 | 95 | ||
96 | #ifndef __HAVE_ARCH_THREAD_INFO_ALLOCATOR | ||
97 | static inline struct thread_info *alloc_thread_info(struct task_struct *tsk) | ||
98 | { | ||
99 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
100 | gfp_t mask = GFP_KERNEL | __GFP_ZERO; | ||
101 | #else | ||
102 | gfp_t mask = GFP_KERNEL; | ||
103 | #endif | ||
104 | return (struct thread_info *)__get_free_pages(mask, THREAD_SIZE_ORDER); | ||
105 | } | ||
106 | |||
107 | static inline void free_thread_info(struct thread_info *ti) | ||
108 | { | ||
109 | free_pages((unsigned long)ti, THREAD_SIZE_ORDER); | ||
110 | } | ||
111 | #endif | ||
112 | |||
96 | /* SLAB cache for signal_struct structures (tsk->signal) */ | 113 | /* SLAB cache for signal_struct structures (tsk->signal) */ |
97 | static struct kmem_cache *signal_cachep; | 114 | static struct kmem_cache *signal_cachep; |
98 | 115 | ||