kernel-ark/arch/powerpc/kernel
Jim Keniston 8bf1101bd5 [PATCH] kprobes: Fix return probes on sys_execve
Fix a bug in kprobes that can cause an Oops or even a crash when a return
probe is installed on one of the following functions: sys_execve,
do_execve, load_*_binary, flush_old_exec, or flush_thread.  The fix is to
remove the call to kprobe_flush_task() in flush_thread().  This fix has
been tested on all architectures for which the return-probes feature has
been implemented (i386, x86_64, ppc64, ia64).  Please apply.

BACKGROUND

Up to now, we have called kprobe_flush_task() under two situations: when a
task exits, and when it execs.  Flushing kretprobe_instances on exit is
correct because (a) do_exit() doesn't return, and (b) one or more
return-probed functions may be active when a task calls do_exit().  Neither
is the case for sys_execve() and its callees.

Initially, the mistaken call to kprobe_flush_task() on exec was harmless
because we put the "real" return address of each active probed function
back in the stack, just to be safe, when we recycled its
kretprobe_instance.  When support for ppc64 and ia64 was added, this safety
measure couldn't be employed, and was eventually dropped even for i386 and
x86_64.  sys_execve() and its callees were informally blacklisted for
return probes until this fix was developed.

Acked-by: Prasanna S Panchamukhi <prasanna@in.ibm.com>
Signed-off-by: Jim Keniston <jkenisto@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-23 16:08:39 -08:00
..
vdso32 [PATCH] powerpc: Make the vDSO functions set error code (#2) 2005-11-16 14:05:11 +11:00
vdso64 [PATCH] powerpc: Make the vDSO functions set error code (#2) 2005-11-16 14:05:11 +11:00
align.c [PATCH] powerpc: merge align.c 2005-11-18 14:39:23 +11:00
asm-offsets.c
binfmt_elf32.c
btext.c
cpu_setup_power4.S
cputable.c
dma_64.c
entry_32.S
entry_64.S
firmware.c
fpu.S
head_4xx.S
head_8xx.S
head_32.S
head_44x.S
head_64.S
head_fsl_booke.S
idle_6xx.S
idle_64.c powerpc: Move remaining .c files from arch/ppc64 to arch/powerpc 2005-11-18 15:43:34 +11:00
idle_power4.S
init_task.c
ioctl32.c
iomap.c
iommu.c
irq.c
kprobes.c
lparcfg.c
lparmap.c
machine_kexec_64.c
Makefile powerpc: Move remaining .c files from arch/ppc64 to arch/powerpc 2005-11-18 15:43:34 +11:00
misc_32.S powerpc: Fix delay functions for 601 processors 2005-11-18 14:08:12 +11:00
misc_64.S
module_64.c
nvram_64.c powerpc: Move remaining .c files from arch/ppc64 to arch/powerpc 2005-11-18 15:43:34 +11:00
of_device.c
paca.c
pci_64.c powerpc: Merge pci.h 2005-11-19 20:46:04 +11:00
pci_direct_iommu.c
pci_dn.c
pci_iommu.c
pmc.c
ppc32.h
ppc_ksyms.c powerpc: Merge pci.h 2005-11-19 20:46:04 +11:00
proc_ppc64.c
process.c [PATCH] kprobes: Fix return probes on sys_execve 2005-11-23 16:08:39 -08:00
prom_init.c
prom.c
ptrace32.c powerpc: move include/asm-ppc64/ptrace-common.h to arch/powerpc/kernel 2005-11-19 20:47:22 +11:00
ptrace-common.h powerpc: move include/asm-ppc64/ptrace-common.h to arch/powerpc/kernel 2005-11-19 20:47:22 +11:00
ptrace.c powerpc: move include/asm-ppc64/ptrace-common.h to arch/powerpc/kernel 2005-11-19 20:47:22 +11:00
rtas_flash.c
rtas_pci.c [PATCH] powerpc: pci_64 fixes & cleanups 2005-11-16 13:29:46 +11:00
rtas-proc.c
rtas-rtc.c powerpc: time-of-day fixes for 32-bit CHRP systems 2005-11-18 15:52:38 +11:00
rtas.c
semaphore.c
setup_32.c
setup_64.c
setup-common.c [PATCH] powerpc: More debugging fixups 2005-11-16 13:29:40 +11:00
setup.h
signal_32.c powerpc: Fix clearing of the FPSCR when invoking a signal handler 2005-11-15 11:11:32 +11:00
signal_64.c powerpc: Fix clearing of the FPSCR when invoking a signal handler 2005-11-15 11:11:32 +11:00
smp-tbsync.c
smp.c [PATCH] powerpc: More debugging fixups 2005-11-16 13:29:40 +11:00
sys_ppc32.c
syscalls.c
sysfs.c
systbl.S
time.c powerpc: Fix delay functions for 601 processors 2005-11-18 14:08:12 +11:00
traps.c
udbg_16550.c
udbg_scc.c
udbg.c
vdso.c [PATCH] unpaged: VM_UNPAGED 2005-11-22 09:13:42 -08:00
vecemu.c
vector.S
vio.c
vmlinux.lds.S