linux/kernel
Ananth N Mavinakayanahalli 278ff95370 [PATCH] Kprobes: Fix deadlock in function-return probes
When two function-return probes are inserted on kfree()[1] and the second
on say, sys_link()[2], and later [2] is unregistered, we have a deadlock as
kfree is called with the kretprobe_lock held and the function-return probe
on kfree will also try to grab the same lock.

However, we can move the kfree() during unregistration to outside the
spinlock as we are sure that no instances from the free list will be used
after synchronized_sched() returns during the unregistration process.
Thanks to Masami Hiramatsu for spotting this.

Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-03 08:32:00 -08:00
..
irq [PATCH] kernel/: small cleanups 2006-01-08 20:13:48 -08:00
power Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2006-02-01 22:06:15 -08:00
.gitignore gitignore: ignore more generated files 2006-01-03 11:35:26 +01:00
acct.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
audit.c [PATCH] EDAC: atomic scrub operations 2006-01-18 19:20:30 -08:00
auditsc.c [PATCH] EDAC: atomic scrub operations 2006-01-18 19:20:30 -08:00
capability.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
compat.c [PATCH] Generic sys_rt_sigsuspend() 2006-01-18 19:20:29 -08:00
configs.c update the email address of Randy Dunlap 2006-01-03 13:37:51 +01:00
cpu.c [PATCH] clean up lock_cpu_hotplug() in cpufreq 2005-11-28 14:42:23 -08:00
cpuset.c [PATCH] cpuset oom lock fix 2006-01-14 18:27:10 -08:00
dma.c
exec_domain.c
exit.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
extable.c
fork.c [PATCH] hrtimers: cleanups and simplifications 2006-02-01 08:53:13 -08:00
futex.c [PATCH] FRV: Make futex code compilable on nommu [try #2] 2006-01-06 08:33:33 -08:00
hrtimer.c [PATCH] hrtimers: add back lost credit lines 2006-02-01 08:53:13 -08:00
intermodule.c
itimer.c [PATCH] hrtimers: fix oldvalue return in setitimer 2006-02-01 08:53:12 -08:00
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
kfifo.c
kmod.c
kprobes.c [PATCH] Kprobes: Fix deadlock in function-return probes 2006-02-03 08:32:00 -08:00
ksysfs.c [PATCH] kdump: export per cpu crash notes pointer through sysfs 2006-01-10 08:01:26 -08:00
kthread.c
Makefile [PATCH] build kernel/intermodule.c only when required 2006-01-16 23:15:26 -08:00
module.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
mutex-debug.c [PATCH] fix/simplify mutex debugging code 2006-01-11 08:14:16 -08:00
mutex-debug.h [PATCH] mutex subsystem, debugging code 2006-01-09 15:59:20 -08:00
mutex.c [PATCH] mutex: trivial whitespace cleanups 2006-01-10 14:27:59 -08:00
mutex.h [PATCH] mutex subsystem, core 2006-01-09 15:59:19 -08:00
panic.c [PATCH] s390: cleanup Kconfig 2006-01-06 08:33:53 -08:00
params.c [PATCH] kernel/params.c: fix sysfs access with CONFIG_MODULES=n 2005-12-20 10:31:33 -08:00
pid.c [PATCH] RCU signal handling 2006-01-08 20:13:40 -08:00
posix-cpu-timers.c [PATCH] hrtimer: switch clock_nanosleep to hrtimer nanosleep API 2006-01-10 08:01:38 -08:00
posix-timers.c [PATCH] kernel/posix-timers.c: remove do_posix_clock_notimer_create() 2006-02-01 08:53:13 -08:00
printk.c correct email address of Manfred Spraul 2006-01-15 02:43:54 +01:00
profile.c
ptrace.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
rcupdate.c [PATCH] rcu: fix hotplug-cpu ->donelist leak 2006-01-10 08:49:47 -08:00
rcutorture.c [PATCH] rcu_torture_lock deadlock fix 2006-01-31 11:30:18 -08:00
resource.c [PATCH] kernel/resource.c: __check_region(): remove pointless __deprecated 2006-01-10 08:02:02 -08:00
sched.c [PATCH] sys_sched_getaffinity() & hotplug 2006-02-01 08:53:13 -08:00
seccomp.c
signal.c [PATCH] Generic sys_rt_sigsuspend() 2006-01-18 19:20:29 -08:00
softirq.c
softlockup.c
spinlock.c
stop_machine.c [PATCH] Remove set_fs() in stop_machine() 2006-01-10 08:01:25 -08:00
sys_ni.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge 2006-01-09 10:03:44 -08:00
sys.c [ACPI] merge 3549 4320 4485 4588 4980 5483 5651 acpica asus fops pnpacpi branches into release 2006-01-24 17:52:48 -05:00
sysctl.c [PATCH] zone_reclaim: configurable off node allocation period. 2006-02-01 08:53:16 -08:00
time.c Don't try to "validate" a non-existing timeval. 2006-01-31 10:16:55 -08:00
timer.c [PATCH] hrtimer: switch sys_nanosleep to hrtimer 2006-01-10 08:01:38 -08:00
uid16.c [PATCH] move capable() to capability.h 2006-01-11 18:42:13 -08:00
user.c [PATCH] "Fix uidhash_lock <-> RXU deadlock" fix 2006-01-31 16:49:43 -08:00
wait.c
workqueue.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00