hrtimer: fix recursion deadlock by re-introducing the softirq
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Mon, 5 Jan 2009 10:28:22 +0000 (11:28 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 5 Jan 2009 12:14:33 +0000 (13:14 +0100)
Impact: fix rare runtime deadlock

There are a few sites that do:

  spin_lock_irq(&foo)
  hrtimer_start(&bar)
    __run_hrtimer(&bar)
      func()
        spin_lock(&foo)

which obviously deadlocks. In order to avoid this, never call __run_hrtimer()
from hrtimer_start*() context, but instead defer this to softirq context.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

No differences found