Commit af25e94d authored by 's avatar Committed by Tony Luck

[IA64] Make ia64 die() preempt safe

Signed-off-by: default avatarKeith Owens <kaos@sgi.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 67d340f4
...@@ -90,14 +90,16 @@ die (const char *str, struct pt_regs *regs, long err) ...@@ -90,14 +90,16 @@ die (const char *str, struct pt_regs *regs, long err)
.lock_owner_depth = 0 .lock_owner_depth = 0
}; };
static int die_counter; static int die_counter;
int cpu = get_cpu();
if (die.lock_owner != smp_processor_id()) { if (die.lock_owner != cpu) {
console_verbose(); console_verbose();
spin_lock_irq(&die.lock); spin_lock_irq(&die.lock);
die.lock_owner = smp_processor_id(); die.lock_owner = cpu;
die.lock_owner_depth = 0; die.lock_owner_depth = 0;
bust_spinlocks(1); bust_spinlocks(1);
} }
put_cpu();
if (++die.lock_owner_depth < 3) { if (++die.lock_owner_depth < 3) {
printk("%s[%d]: %s %ld [%d]\n", printk("%s[%d]: %s %ld [%d]\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment