On Thu, May 21, 2015 at 8:03 AM, Ingo Molnar <mi...@kernel.org> wrote:
>
> * Maninder Singh <maninder...@samsung.com> wrote:
>
>>  EP-F6AA0618C49C4AEDA73BFF1B39950BAB
>> 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.
>>
>> 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 <snip>

Still it looks like it is a legitimate change. I don't see where the
unlock would be done otherwise.

I do wonder if this would look nicer if the whole locked part would be
pulled out into a separate (inline) function. That would render the
repeated read_unlock()s unnecessary and possibly also prevent a
goto/label mess if that were to be attempted in-line.

Frans
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to