aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 05b92c457010..cffbe8a4e1fc 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -109,8 +109,10 @@ int nr_processes(void)
109} 109}
110 110
111#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR 111#ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
112# define alloc_task_struct() kmem_cache_alloc(task_struct_cachep, GFP_KERNEL) 112# define alloc_task_struct_node(node) \
113# define free_task_struct(tsk) kmem_cache_free(task_struct_cachep, (tsk)) 113 kmem_cache_alloc_node(task_struct_cachep, GFP_KERNEL, node)
114# define free_task_struct(tsk) \
115 kmem_cache_free(task_struct_cachep, (tsk))
114static struct kmem_cache *task_struct_cachep; 116static struct kmem_cache *task_struct_cachep;
115#endif 117#endif
116 118
@@ -249,12 +251,12 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
249 struct task_struct *tsk; 251 struct task_struct *tsk;
250 struct thread_info *ti; 252 struct thread_info *ti;
251 unsigned long *stackend; 253 unsigned long *stackend;
252 254 int node = numa_node_id();
253 int err; 255 int err;
254 256
255 prepare_to_copy(orig); 257 prepare_to_copy(orig);
256 258
257 tsk = alloc_task_struct(); 259 tsk = alloc_task_struct_node(node);
258 if (!tsk) 260 if (!tsk)
259 return NULL; 261 return NULL;
260 262