Commit 3d431a74 authored by Manfred Spraul's avatar Manfred Spraul Committed by Haavard Skinnemoen

avr32: nmi_enter() without nmi_exit()

While updating the rcu code, I noticed that do_nmi() for AVR32 is odd:
There is an nmi_enter() call without an nmi_exit().
This can't be correct, it breaks rcu (at least the preempt version) and
lockdep.

[haavard.skinnemoen@atmel.com: fixed another case that returned directly]
Signed-off-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
parent 73d4393d
...@@ -116,15 +116,15 @@ asmlinkage void do_nmi(unsigned long ecr, struct pt_regs *regs) ...@@ -116,15 +116,15 @@ asmlinkage void do_nmi(unsigned long ecr, struct pt_regs *regs)
switch (ret) { switch (ret) {
case NOTIFY_OK: case NOTIFY_OK:
case NOTIFY_STOP: case NOTIFY_STOP:
return; break;
case NOTIFY_BAD: case NOTIFY_BAD:
die("Fatal Non-Maskable Interrupt", regs, SIGINT); die("Fatal Non-Maskable Interrupt", regs, SIGINT);
default: default:
printk(KERN_ALERT "Got NMI, but nobody cared. Disabling...\n");
nmi_disable();
break; break;
} }
nmi_exit();
printk(KERN_ALERT "Got NMI, but nobody cared. Disabling...\n");
nmi_disable();
} }
asmlinkage void do_critical_exception(unsigned long ecr, struct pt_regs *regs) asmlinkage void do_critical_exception(unsigned long ecr, struct pt_regs *regs)
......
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