diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2012-08-27 08:04:24 -0700 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2012-08-27 08:05:17 -0700 |
| commit | 66a61fc0b2c3475f26f65b5f29ed5945b8efbf9e (patch) | |
| tree | 28ebaaee56786cd9199e0e5802d166474d30d1e3 /kernel/panic.c | |
| parent | 8db089d1b08209c04cd130e49fa4796b5513ce7f (diff) | |
| parent | d37e44969e60dc652fdbaf4397d5436e07c967af (diff) | |
Merge branch 'master' into upstream
Sync with Linus' tree so that we don't have build falures
due to Quanta 3001 ID reshuffling.
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 d2a5f4ecc6d..e1b2822fff9 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... |
