• Michael Ellerman's avatar
    [PATCH] powerpc: Turn cpu_irq_down into kexec_cpu_down · c5e24354
    Michael Ellerman authored
    We currently have a ppc_md member called cpu_irq_down, which disables IRQs
    for the cpu in question. The only caller of cpu_irq_down is the kexec code.
    
    On pSeries we need to do more than just teardown IRQs at kexec time, so rename
    the ppc_md member to kexec_cpu_down and expand it. The pSeries code needs to
    know, and other platforms might too, whether we're doing a crash shutdown (ie.
    panicking) or a regular kexec, so add a flag for that.
    
    The pSeries implementation of kexec_cpu_down does an unregister VPA call, which
    tells the Hypervisor to stop writing stuff into our pacas. Without this we can
    get weird memory corruption bugs when we kexec, caused by the Hypervisor
    writing into the first kernel's pacas which happens to be somewhere interesting
    in the second kernel's memory.
    Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    c5e24354
machine_kexec.c 7.75 KB