akpm@osdl.org
ff60a5dc4f
[PATCH] hrtimers: fix posix-timer requeue race
...
From: Steven Rostedtrostedt@goodmis.org <rostedt@goodmis.org>
CPU0 expires a posix-timer and runs the callback function. The signal is
queued.
After releasing the posix-timer lock and before returning to hrtimer_run_queue
CPU0 gets interrupted. CPU1 delivers the queued signal and rearms the timer.
CPU0 comes back to hrtimer_run_queue and sets the timer state to expired.
The next modification of the timer can result in an oops, because the state
information is wrong.
Keep track of state = RUNNING and check if the state has been in the return
path of hrtimer_run_queue. In case the state has been changed, ignore a
restart request and do not touch the state variable.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-01 08:53:13 -08:00
..
irq
power
[PATCH] swsusp: use bytes as image size units
2006-02-01 08:53:12 -08:00
.gitignore
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
cpu.c
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] x86_64: Inclusion of ScaleMP vSMP architecture patches - vsmp_align
2006-01-11 19:05:01 -08:00
futex.c
hrtimer.c
[PATCH] hrtimers: fix posix-timer requeue race
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 unloading of self probed module
2006-01-11 18:42:12 -08:00
ksysfs.c
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
mutex-debug.h
mutex.c
mutex.h
panic.c
params.c
pid.c
posix-cpu-timers.c
posix-timers.c
[PATCH] hrtimers: fix possible use of NULL pointer in posix-timers
2006-02-01 08:53:12 -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
rcutorture.c
[PATCH] rcu_torture_lock deadlock fix
2006-01-31 11:30:18 -08:00
resource.c
sched.c
[PATCH] Fix boot-time slowdown for measure_migration_cost
2006-01-31 10:23:31 -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
sys.c
[PATCH] move capable() to capability.h
2006-01-11 18:42:13 -08:00
sys_ni.c
sysctl.c
[PATCH] Zone reclaim: proc override
2006-01-18 19:20:17 -08:00
time.c
Don't try to "validate" a non-existing timeval.
2006-01-31 10:16:55 -08:00
timer.c
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