Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6425b9f authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Thomas Gleixner
Browse files

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: default avatarCyrill Gorcunov <gorcunov@gmail.com>
Cc: hpa@zytor.com
Cc: mingo@redhat.com
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent e56b3a12
Loading
Loading
Loading
Loading
+0 −25
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@

int unknown_nmi_panic;
int nmi_watchdog_enabled;
int panic_on_unrecovered_nmi;

static cpumask_t backtrace_mask = CPU_MASK_NONE;

@@ -383,30 +382,6 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
	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

static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu)
+24 −0
Original line number Diff line number Diff line
@@ -76,7 +76,9 @@ asmlinkage void alignment_check(void);
asmlinkage void machine_check(void);
asmlinkage void spurious_interrupt_bug(void);

int panic_on_unrecovered_nmi;
static unsigned int code_bytes = 64;
static unsigned ignore_nmis;

static inline void conditional_sti(struct pt_regs *regs)
{
@@ -867,6 +869,28 @@ asmlinkage notrace __kprobes void default_do_nmi(struct pt_regs *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. */
asmlinkage void __kprobes do_int3(struct pt_regs * regs, long error_code)
{