linux-stable-rt/arch/powerpc/kernel
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
..
vdso32
vdso64
Makefile [POWERPC] pasemi: Idle loops 2007-02-07 14:03:22 +11:00
align.c
asm-offsets.c [POWERPC] Fix manual assembly WARN_ON() in enter_rtas(). 2007-01-09 17:03:02 +11:00
audit.c
binfmt_elf32.c
btext.c [POWERPC] Use udbg_early_init() on ppc32 2007-02-14 11:55:16 +11:00
compat_audit.c
cpu_setup_6xx.S
cpu_setup_pa6t.S [POWERPC] pasemi: Idle loops 2007-02-07 14:03:22 +11:00
cpu_setup_ppc970.S
cputable.c [POWERPC] No DEEPNAP on 970MP 1.0 2007-03-08 04:09:32 +11:00
crash.c
crash_dump.c
dma_64.c
entry_32.S
entry_64.S [POWERPC] Clear RI bit in MSR before restoring r13 when returning to userspace 2007-02-07 14:03:23 +11:00
firmware.c
fpu.S
head_4xx.S
head_8xx.S
head_32.S [POWERPC] Remove the broken Gemini support 2007-01-24 21:13:58 +11:00
head_44x.S [POWERPC] Remove ibm4{xx,4x}.h from arch/powerpc 2007-02-13 14:59:52 +11:00
head_64.S [POWERPC] Fix performance monitor exception 2007-02-07 14:03:23 +11:00
head_booke.h
head_fsl_booke.S [POWERPC] 85xx: Drop use of SYNC macro in head_fsl_booke.S 2007-02-13 16:13:27 -06:00
ibmebus.c
idle.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
idle_6xx.S
idle_power4.S
init_task.c
io.c
iomap.c [POWERPC] Remove fastcall function attribute 2007-01-26 01:52:27 -06:00
iommu.c
irq.c [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08:00
kprobes.c [POWERPC] Added kprobes support to ppc32 2007-02-06 22:55:19 -06:00
l2cr_6xx.S
legacy_serial.c [POWERPC] Open Firmware serial port driver 2007-02-14 11:50:04 +11:00
lparcfg.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
lparmap.c
machine_kexec.c
machine_kexec_32.c
machine_kexec_64.c
misc.S
misc_32.S
misc_64.S [POWERPC] pasemi: UART udbg support 2007-02-07 14:03:22 +11:00
module_32.c [POWERPC] Add support for R_PPC_ADDR16_HI relocations 2007-01-24 21:13:58 +11:00
module_64.c
nvram_64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
of_device.c
of_platform.c [POWERPC] powerpc: add scanning of ebc bus to of_platform 2006-12-19 15:35:40 +01:00
paca.c
pci_32.c [POWERPC] Do not write virq back to PCI config space 2007-01-24 21:13:57 +11:00
pci_64.c Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc 2007-02-08 10:04:20 -08:00
pci_dn.c
pmc.c [POWERPC] PA6T PMC support 2007-02-07 14:03:19 +11:00
ppc32.h
ppc_ksyms.c [POWERPC] Compile fixes for arch/powerpc dcr code 2007-02-07 14:03:23 +11:00
proc_ppc64.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
process.c [POWERPC] Fix atomicity of TIF update in flush_thread() 2007-03-16 16:37:28 +11:00
prom.c [POWERPC] Export of_find_property 2007-02-16 14:00:20 +11:00
prom_init.c [POWERPC] Add device tree fixups for the EFIKA 2007-02-13 15:35:53 +11:00
prom_parse.c [POWERPC] Fix warning in prom_parse.c of_irq_map_oldworld() 2007-03-08 04:09:33 +11:00
ptrace-common.h
ptrace.c [POWERPC] Mask 32-bit system call arguments to 32 bits on PPC64 in audit code 2007-01-24 21:13:58 +11:00
ptrace32.c
rtas-proc.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
rtas-rtc.c
rtas.c Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
rtas_flash.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
rtas_pci.c
semaphore.c
setup-common.c
setup.h
setup_32.c [POWERPC] Use udbg_early_init() on ppc32 2007-02-14 11:55:16 +11:00
setup_64.c
signal_32.c [POWERPC] Fix register save area alignment for swapcontext syscall 2006-12-20 16:37:49 +11:00
signal_64.c
smp-tbsync.c
smp.c [POWERPC] Move MPIC smp routines into mpic.c 2007-02-14 11:50:04 +11:00
swsusp_32.S
sys_ppc32.c [PATCH] Common compat_sys_sysinfo 2007-02-11 10:51:32 -08:00
syscalls.c
sysfs.c [POWERPC] PA6T PMC support 2007-02-07 14:03:19 +11:00
systbl.S
tau_6xx.c
time.c
traps.c backlight: Separate backlight properties from backlight ops pointers 2007-02-20 09:26:53 +00:00
udbg.c [POWERPC] Use udbg_early_init() on ppc32 2007-02-14 11:55:16 +11:00
udbg_16550.c [PATCH] constant should be long 2007-03-14 15:27:50 -07:00
vdso.c [POWERPC] Fix vDSO page count calculation 2007-02-13 15:35:52 +11:00
vecemu.c
vector.S
vio.c [POWERPC] arch/powerpc/kernel/vio.c of_node_put cleanup 2007-01-24 21:13:57 +11:00
vmlinux.lds.S [PATCH] disable init/initramfs.c: architectures 2007-02-11 10:51:25 -08:00