• Ingo Molnar's avatar
    panic: decrease oops_in_progress only after having done the panic · ffd71da4
    Ingo Molnar authored
    Impact: eliminate secondary warnings during panic()
    
    We can panic() in a number of difficult, atomic contexts, hence
    we use bust_spinlocks(1) in panic() to increase oops_in_progress,
    which prevents various debug checks we have in place.
    
    But in practice this protection only covers the first few printk's
    done by panic() - it does not cover the later attempt to stop all
    other CPUs and kexec(). If a secondary warning triggers in one of
    those facilities that can make the panic message scroll off.
    
    So do bust_spinlocks(0) only much later in panic(). (which code
    is only reached if panic policy is relaxed that it can return
    after a warning message)
    Reported-by: default avatarJan Beulich <jbeulich@novell.com>
    LKML-Reference: <49B91A7E.76E4.0078.0@novell.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    ffd71da4
panic.c 8.4 KB