linux/arch/tile
Oleg Nesterov ceca3c193e tile: do_hardwall_trap: do not play with task->sighand
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>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2011-05-04 14:41:53 -04:00
..
configs kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
include tile: replace mm->cpu_vm_mask with mm_cpumask() 2011-05-04 14:41:44 -04:00
kernel tile: do_hardwall_trap: do not play with task->sighand 2011-05-04 14:41:53 -04:00
kvm arch/tile: parameterize system PLs to support KVM port 2010-10-15 15:38:09 -04:00
lib arch/tile: disable GX prefetcher during cache flush 2011-05-04 14:40:46 -04:00
mm arch/tile: support TIF_NOTIFY_RESUME 2011-05-02 18:53:35 -04:00
Kbuild arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
Kconfig arch/tile: improve support for PCI hotplug 2011-05-04 14:39:53 -04:00
Kconfig.debug kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile arch/tile: parameterize system PLs to support KVM port 2010-10-15 15:38:09 -04:00