EP-F6AA0618C49C4AEDA73BFF1B39950BAB >> Hi, >> >> From: Maninder Singh <maninder...@samsung.com> >> >> 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 <maninder...@samsung.com> >> Signed-off-by: Vaneet Narang <v.nar...@samsung.com> >> Reviewd-by: Akhilesh Kumar <akhiles...@samsung.com> >> --- >> 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 <o...@redhat.com> > 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.