EP-F6AA0618C49C4AEDA73BFF1B39950BAB Hi Oleg,
>> Hi, >> >> From: Maninder Singh <maninder...@samsung.com> >> >> Subject: [PATCH 1/1] kernel/exit.c : Fix missing task_unlock >> >> This patch adds missing read_unlock if do_wait_thread or ptrace_do_wait >> returns non zero. > >Confused... > >wait_consider_task() should drop tasklist_lock if it returns non-zero? > > >> --- 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; >> + } > >Well, the patch is obviously wrong. Because, again, tasklist_lock was >already unlocked if (say) wait_task_zombie() reaps a child. Yes, agree, My wrong >If you think there is a case which forgets to unlock, please tell us >more. I have checked It is getting unlocked in wait_task_zombie Sorry for unnecessary disturbance. >Oleg. Thanks