EP-F6AA0618C49C4AEDA73BFF1B39950BAB >> Hi, >> >> From: Maninder Singh >> >> Subject: [PATCH 1/1] kernel/exit.c : Fix missing task_unlock >> Subject: [PATCH 1/1] kernel/exit.c : Fix missing read_unlock >> This patch adds missing read_unlock if do_wait_thread or ptrace_do_wait >> returns non zero. Reported By Prevent Under Missing unlock category(program hangs):- missing_unlock: returning without unlocking tasklist_lock >> >> Signed-off-by: Maninder Singh >> Signed-off-by: Vaneet Narang >> Reviewd-by: Akhilesh Kumar >> --- >> kernel/exit.c | 8 ++++++-- >> 1 files changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/kernel/exit.c b/kernel/exit.c >> index 22fcc05..31a061f 100644 >> --- a/kernel/exit.c >> +++ b/kernel/exit.c >> @@ -1486,12 +1486,16 @@ repeat: >> tsk = current; >> do { >> retval = do_wait_thread(wo, tsk); >> - if (retval) >> + if (retval) { >> + read_unlock(&tasklist_lock); >> goto end; >> + } >> >> retval = ptrace_do_wait(wo, tsk); >> - if (retval) >> + if (retval) { >> + read_unlock(&tasklist_lock); >> goto end; >> + } >> >> if (wo->wo_flags & __WNOTHREAD) >> break; > >That's surprising and the changelog is lacking. >So the last time that code was touched upstream was 7 years ago: > commit 64a16caf5e3417ee32f670debcb5857b02a9e08e > Author: Oleg Nesterov > Date: Wed Jun 17 16:27:40 2009 -0700 > do_wait: simplify retval/tsk_result/notask_error mess >please explain whether what you fix is: > 1) an ancient bug that somehow nobody ever triggered (plus analysis > of why it wasn't triggered) > 2) a new bug introduced by commit XYZ (plus analysis) > 3) something else This issue is reported by Prevent Under category Missing Unlock, So we think it should be reported to maintainers. >Thanks, > Ingo Thanks.{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I