• Benjamin Herrenschmidt's avatar
    powerpc: Fix missing/delayed calls to irq_work · 230b3034
    Benjamin Herrenschmidt authored
    When replaying interrupts (as a result of the interrupt occurring
    while soft-disabled), in the case of the decrementer, we are exclusively
    testing for a pending timer target. However we also use decrementer
    interrupts to trigger the new "irq_work", which in this case would
    be missed.
    
    This change the logic to force a replay in both cases of a timer
    boundary reached and a decrementer interrupt having actually occurred
    while disabled. The former test is still useful to catch cases where
    a CPU having been hard-disabled for a long time completely misses the
    interrupt due to a decrementer rollover.
    
    CC: <stable@vger.kernel.org> [v3.4+]
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Tested-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    230b3034
irq.c 17.5 KB