• Nicholas Piggin's avatar
    Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled" · abc3fce7
    Nicholas Piggin authored
    This reverts commit ebb37cf3.
    
    That commit does not play well with soft-masked irq state
    manipulations in idle, interrupt replay, and possibly others due to
    tracing code sometimes using irq_work_queue (e.g., in
    trace_hardirqs_on()). That can cause PACA_IRQ_DEC to become set when
    it is not expected, and be ignored or cleared or cause warnings.
    
    The net result seems to be missing an irq_work until the next timer
    interrupt in the worst case which is usually not going to be noticed,
    however it could be a long time if the tick is disabled, which is
    against the spirit of irq_work and might cause real problems.
    
    The idea is still solid, but it would need more work. It's not really
    clear if it would be worth added complexity, so revert this for
    now (not a straight revert, but replace with a comment explaining why
    we might see interrupts happening, and gives git blame something to
    find).
    
    Fixes: ebb37cf3 ("powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled")
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200402120401.1115883-1-npiggin@gmail.com
    abc3fce7
time.c 31.4 KB