• Thomas Gleixner's avatar
    hrtimer: fix migration of CB_IRQSAFE_NO_SOFTIRQ hrtimers · 41e1022e
    Thomas Gleixner authored
    Impact: Stale timers after a CPU went offline.
    
    commit 37bb6cb4
           hrtimer: unlock hrtimer_wakeup
    
    changed the hrtimer sleeper callback mode to CB_IRQSAFE_NO_SOFTIRQ due
    to locking problems. A result of this change is that when enqueue is
    called for an already expired hrtimer the callback function is not
    longer called directly from the enqueue code. The normal callers have
    been fixed in the code, but the migration code which moves hrtimers
    from a dead CPU to a live CPU was not made aware of this.
    
    This can be fixed by checking the timer state after the call to
    enqueue in the migration code.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    41e1022e
hrtimer.c 41.5 KB