diff --git a/fs/exec.c b/fs/exec.c index 77603ceed51f9..1310fb4d5f0d4 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -1037,8 +1037,12 @@ static int exec_mmap(struct mm_struct *mm) task_lock(tsk); active_mm = tsk->active_mm; membarrier_exec_mmap(mm); + + preempt_disable(); tsk->mm = mm; tsk->active_mm = mm; + preempt_enable(); + activate_mm(active_mm, mm); tsk->mm->vmacache_seqnum = 0; vmacache_flush(tsk);