From: Alan Cox Ensure current->signal->tty doesn't get freed during log_exec(). Signed-off-by: Alan Cox Cc: Jeff Dike Signed-off-by: Andrew Morton --- arch/um/kernel/exec.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN arch/um/kernel/exec.c~uml-tty-locking arch/um/kernel/exec.c --- a/arch/um/kernel/exec.c~uml-tty-locking +++ a/arch/um/kernel/exec.c @@ -41,9 +41,11 @@ static long execve1(char *file, char __u long error; #ifdef CONFIG_TTY_LOG - task_lock(current); + mutex_lock(&tty_mutex); + task_lock(current); /* FIXME: is this needed ? */ log_exec(argv, current->signal->tty); task_unlock(current); + mutex_unlock(&tty_mutex); #endif error = do_execve(file, argv, env, ¤t->thread.regs); if (error == 0){ _