#include <linux/init.h>
#include <linux/nmi.h>
#include <linux/dmi.h>
+#include <linux/pm.h>
#define PANIC_TIMER_STEP 100
#define PANIC_BLINK_SPD 18
long i, i_next = 0;
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
/*
* 64-bit random ID for oopses:
*/
-static u64 oops_id;
+static u64 __suspend_volatile_bss oops_id;
static int init_oops_id(void)
{