]> git.baikalelectronics.ru Git - kernel.git/commit
hrtimer: prevent migration for raising softirq
authorSteven Rostedt <rostedt@goodmis.org>
Thu, 3 Jul 2008 18:31:26 +0000 (14:31 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 3 Jul 2008 18:36:48 +0000 (11:36 -0700)
commit2ff9c1ad6d0fe307bb9660cef4be6761b47a0e13
tree86512e4fe0a03970003260671a3c28045f57f5e8
parentcaad227fe05654fd5026d56809386d75664ed081
hrtimer: prevent migration for raising softirq

Due to a possible deadlock, the waking of the softirq was pushed outside
of the hrtimer base locks. See commit e39f3e75869861d4032eae956c39775f9bb692c1

Unfortunately this allows the task to migrate after setting up the softirq
and raising it. Since softirqs run a queue that is per-cpu we may raise the
softirq on the wrong CPU and this will keep the queued softirq task from
running.

To solve this issue, this patch disables preemption around the releasing
of the hrtimer lock and raising of the softirq.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/hrtimer.c