lkml.org 
[lkml]   [2011]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/1] tile: do_hardwall_trap: do not play with task->sighand
On 4/26/2011 4:37 PM, Oleg Nesterov wrote:
> 1. do_hardwall_trap() checks ->sighand != NULL and then takes ->siglock.
>
> This is unsafe even if the task can't run (I assume it is pinned to
> the same CPU), its parent can reap the task and set ->sighand = NULL
> right after this check. Even if the compiler dosn't read ->sighand
> twice and this memory can't to away __group_send_sig_info() is wrong
> after that. Use do_send_sig_info().
>
> 2. Send SIGILL to the thread, not to the whole process. Unless it has
> the handler or blocked this kills the whole thread-group as before.
> IIUC, different threads can be bound to different rect's.
>
> 3. Check PF_EXITING instead of ->sighand. A zombie thread can go away
> but its ->sighand can be !NULL.
>
> Reported-by: Matt Fleming <matt@console-pimps.org>
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>

Thanks, I've taken this change into the tile tree.

--
Chris Metcalf, Tilera Corp.
http://www.tilera.com




\
 
 \ /
  Last update: 2011-05-03 00:45    [W:0.069 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site