linux/arch
Mathieu Desnoyers f144e7c727 [POWERPC] Fix atomicity of TIF update in flush_thread()
Fix atomicity of TIF update in flush_thread() for powerpc

Fixes it correctly with *_ti_thread_flag.

Race :

parent process executing :
sys_ptrace()
 (lock_kernel())
 (ptrace_get_task_struct(pid))
 arch_ptrace()
   ptrace_detach()
     ptrace_disable(child);
       clear_singlestep(child);
         clear_tsk_thread_flag(child, TIF_SINGLESTEP);
         (which clears the TIF_SINGLESTEP flag atomically from a different
          process)
 (put_task_struct(child))
 (unlock_kernel())

And at the same time, in the child process :
sys_execve()
 do_execve()
   search_binary_handler()
     load_elf_binary()
       flush_old_exec()
         flush_thread()
           doing a non-atomic thread flag update

Applies on 2.6.20.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-03-16 16:37:28 +11:00
..
alpha [PATCH] Dynamic kernel command-line: alpha 2007-02-12 09:48:37 -08:00
arm [ARM] 4255/1: i.MX/MX1 Correct MPU PLL reference clock value. 2007-03-12 16:49:35 +00:00
arm26 [PATCH] arch/arm26/kernel/entry.S: remove dead code 2007-03-01 14:53:35 -08:00
avr32 [AVR32] Don't use kmap() in flush_icache_page() 2007-03-07 10:50:29 +01:00
cris [PATCH] fix memory leak in dma_declare_coherent_memory() 2007-03-01 14:53:39 -08:00
frv [PATCH] FRV: No ZONE_DMA 2007-03-01 14:53:36 -08:00
h8300 [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
i386 Disable NMI watchdog by default properly 2007-03-14 17:53:43 -07:00
ia64 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-03-09 22:00:51 -08:00
m32r Various typo fixes. 2007-02-17 19:07:33 +01:00
m68k [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
m68knommu [PATCH] m68knommu: remove local_bh_count 2007-03-06 18:08:38 -08:00
mips [MIPS] kspd: ioctl needs a translation entry. 2007-03-13 16:59:31 +00:00
parisc [PARISC] clocksource: Move update_cr16_clocksource later in boot 2007-02-26 22:21:22 -05:00
powerpc [POWERPC] Fix atomicity of TIF update in flush_thread() 2007-03-16 16:37:28 +11:00
ppc mv643xx_eth: Place explicit port number in mv643xx_eth_platform_data 2007-03-06 06:14:54 -05:00
s390 [PATCH] appldata build fix 2007-03-14 15:27:48 -07:00
sh sh: Kill off I/O cruft for R7780RP. 2007-03-05 20:19:57 +09:00
sh64 [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
sparc [PATCH] sparc: nr_free_pages() is unsigned long 2007-03-14 15:27:50 -07:00
sparc64 [SPARC64]: Add missing HPAGE_MASK masks on address parameters. 2007-03-12 22:55:39 -07:00
um [PATCH] stacktrace doesn't work on uml 2007-03-14 15:27:49 -07:00
v850 kbuild: Replace remaining "depends" with "depends on" 2007-02-17 19:05:24 +01:00
x86_64 Disable NMI watchdog by default properly 2007-03-14 17:53:43 -07:00
xtensa [PATCH] Dynamic kernel command-line: xtensa 2007-02-12 09:48:39 -08:00