diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2012-10-09 21:20:05 +0200 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2012-10-09 21:20:05 +0200 |
| commit | db8c246937713e60b7628661ccc187eeb81f2bae (patch) | |
| tree | 6351e8bca23eef40fce85396d1c6f6cfffbd4b66 /kernel/panic.c | |
| parent | c5f66e99b7cb091e3d51ae8e8156892e8feb7fa3 (diff) | |
| parent | 28f2b02bc581ffc835bc1691b18d03f62fcf0395 (diff) | |
Merge branch 'fortglx/3.7/time' of git://git.linaro.org/people/jstultz/linux into timers/core
Diffstat (limited to 'kernel/panic.c')
| -rw-r--r-- | kernel/panic.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/panic.c b/kernel/panic.c index d2a5f4ecc6dd..e1b2822fff97 100644 --- a/kernel/panic.c +++ b/kernel/panic.c @@ -75,6 +75,14 @@ void panic(const char *fmt, ...) int state = 0; /* + * Disable local interrupts. This will prevent panic_smp_self_stop + * from deadlocking the first cpu that invokes the panic, since + * there is nothing to prevent an interrupt handler (that runs + * after the panic_lock is acquired) from invoking panic again. + */ + local_irq_disable(); + + /* * It's possible to come here directly from a panic-assertion and * not have preempt disabled. Some functions called from here want * preempt to be disabled. No point enabling it later though... |
