提交 c6425b9f 编写于 作者: C Cyrill Gorcunov 提交者: Thomas Gleixner

x86: move do_nmi(), stop_nmi() and restart_nmi() to traps_64.c

traps_32.c already holds these functions so do the same for traps_64.c
Signed-off-by: NCyrill Gorcunov <gorcunov@gmail.com>
Cc: hpa@zytor.com
Cc: mingo@redhat.com
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 e56b3a12
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
int unknown_nmi_panic; int unknown_nmi_panic;
int nmi_watchdog_enabled; int nmi_watchdog_enabled;
int panic_on_unrecovered_nmi;
static cpumask_t backtrace_mask = CPU_MASK_NONE; static cpumask_t backtrace_mask = CPU_MASK_NONE;
...@@ -383,30 +382,6 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason) ...@@ -383,30 +382,6 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
return rc; return rc;
} }
static unsigned ignore_nmis;
asmlinkage notrace __kprobes void
do_nmi(struct pt_regs *regs, long error_code)
{
nmi_enter();
add_pda(__nmi_count,1);
if (!ignore_nmis)
default_do_nmi(regs);
nmi_exit();
}
void stop_nmi(void)
{
acpi_nmi_disable();
ignore_nmis++;
}
void restart_nmi(void)
{
ignore_nmis--;
acpi_nmi_enable();
}
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu) static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu)
......
...@@ -76,7 +76,9 @@ asmlinkage void alignment_check(void); ...@@ -76,7 +76,9 @@ asmlinkage void alignment_check(void);
asmlinkage void machine_check(void); asmlinkage void machine_check(void);
asmlinkage void spurious_interrupt_bug(void); asmlinkage void spurious_interrupt_bug(void);
int panic_on_unrecovered_nmi;
static unsigned int code_bytes = 64; static unsigned int code_bytes = 64;
static unsigned ignore_nmis;
static inline void conditional_sti(struct pt_regs *regs) static inline void conditional_sti(struct pt_regs *regs)
{ {
...@@ -867,6 +869,28 @@ asmlinkage notrace __kprobes void default_do_nmi(struct pt_regs *regs) ...@@ -867,6 +869,28 @@ asmlinkage notrace __kprobes void default_do_nmi(struct pt_regs *regs)
io_check_error(reason, regs); io_check_error(reason, regs);
} }
asmlinkage notrace __kprobes void
do_nmi(struct pt_regs *regs, long error_code)
{
nmi_enter();
add_pda(__nmi_count, 1);
if (!ignore_nmis)
default_do_nmi(regs);
nmi_exit();
}
void stop_nmi(void)
{
acpi_nmi_disable();
ignore_nmis++;
}
void restart_nmi(void)
{
ignore_nmis--;
acpi_nmi_enable();
}
/* runs on IST stack. */ /* runs on IST stack. */
asmlinkage void __kprobes do_int3(struct pt_regs * regs, long error_code) asmlinkage void __kprobes do_int3(struct pt_regs * regs, long error_code)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册