diff options
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/kernel/fork.c b/kernel/fork.c index 6d42242485cb..623259fc794d 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -547,7 +547,8 @@ free_tsk:  }  #ifdef CONFIG_MMU -static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) +static __latent_entropy int dup_mmap(struct mm_struct *mm, +					struct mm_struct *oldmm)  {  	struct vm_area_struct *mpnt, *tmp, *prev, **pprev;  	struct rb_node **rb_link, *rb_parent; @@ -1441,7 +1442,8 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)   * parts of the process environment (as per the clone   * flags). The actual kick-off is left to the caller.   */ -static struct task_struct *copy_process(unsigned long clone_flags, +static __latent_entropy struct task_struct *copy_process( +					unsigned long clone_flags,  					unsigned long stack_start,  					unsigned long stack_size,  					int __user *child_tidptr, @@ -1926,6 +1928,7 @@ long _do_fork(unsigned long clone_flags,  	p = copy_process(clone_flags, stack_start, stack_size,  			 child_tidptr, NULL, trace, tls, NUMA_NO_NODE); +	add_latent_entropy();  	/*  	 * Do this prior waking up the new thread - the thread pointer  	 * might get invalid after that point, if the thread exits quickly. |