diff options
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 | ||
