• Will Deacon's avatar
    alpha: irq: run all handlers with interrupts disabled · e20800fd
    Will Deacon authored
    Linux has expected that interrupt handlers are executed with local
    interrupts disabled for a while now, so ensure that this is the case on
    Alpha even for non-device interrupts such as IPIs.
    
    Without this patch, secondary boot results in the following backtrace:
    
      warning: at kernel/softirq.c:139 __local_bh_enable+0xb8/0xd0()
      trace:
        __local_bh_enable+0xb8/0xd0
        irq_enter+0x74/0xa0
        scheduler_ipi+0x50/0x100
        handle_ipi+0x84/0x260
        do_entint+0x1ac/0x2e0
        irq_exit+0x60/0xa0
        handle_irq+0x98/0x100
        do_entint+0x2c8/0x2e0
        ret_from_sys_call+0x0/0x10
        load_balance+0x3e4/0x870
        cpu_idle+0x24/0x80
        rcu_eqs_enter_common.isra.38+0x0/0x120
        cpu_idle+0x40/0x80
        rest_init+0xc0/0xe0
        _stext+0x1c/0x20
    
    A similar dump occurs if you try to reboot using magic-sysrq.
    
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: Matt Turner <mattst88@gmail.com>
    Reviewed-by: default avatarMatt Turner <mattst88@gmail.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarMichael Cree <mcree@orcon.net.nz>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e20800fd
irq.c 2.98 KB