• Will Deacon's avatar
    ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path · 9141a003
    Will Deacon authored
    The kexec machine crash code can be called in interrupt context via a
    sysrq trigger made using the magic key combination. If the irq chip
    dealing with the serial interrupt is using the fasteoi flow handler,
    then we will never EOI the interrupt because the interrupt handler will
    be fatal. In the case of a GIC, this results in the crash kernel not
    receiving interrupts on that CPU interface.
    
    This patch adds code (based on the PowerPC implementation) to EOI any
    pending interrupts on the crash CPU before masking and disabling all
    interrupts. Secondary cores are not a problem since they are placed into
    a cpu_relax() loop via an IPI.
    Reported-by: default avatarLei Wen <leiwen@marvell.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    9141a003
machine_kexec.c 3.45 KB