فهرست منبع

x86: add unknown_nmi_panic kernel parameter

It's not possible to enable the unknown_nmi_panic sysctl option
until init is run. It's useful to be able to panic the kernel
during boot too, this adds a parameter to enable this option.

Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Simon Arlott 17 سال پیش
والد
کامیت
e3a61b0a8c
2فایلهای تغییر یافته به همراه11 افزوده شده و 0 حذف شده
  1. 4 0
      Documentation/kernel-parameters.txt
  2. 7 0
      arch/x86/kernel/nmi.c

+ 4 - 0
Documentation/kernel-parameters.txt

@@ -2158,6 +2158,10 @@ and is between 256 and 4096 characters. It is defined in the file
 			Note that genuine overcurrent events won't be
 			Note that genuine overcurrent events won't be
 			reported either.
 			reported either.
 
 
+	unknown_nmi_panic
+			[X86-32,X86-64]
+			Set unknown_nmi_panic=1 early on boot.
+
 	usbcore.autosuspend=
 	usbcore.autosuspend=
 			[USB] The autosuspend time delay (in seconds) used
 			[USB] The autosuspend time delay (in seconds) used
 			for newly-detected USB devices (default 2).  This
 			for newly-detected USB devices (default 2).  This

+ 7 - 0
arch/x86/kernel/nmi.c

@@ -448,6 +448,13 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
 
 
 #ifdef CONFIG_SYSCTL
 #ifdef CONFIG_SYSCTL
 
 
+static int __init setup_unknown_nmi_panic(char *str)
+{
+	unknown_nmi_panic = 1;
+	return 1;
+}
+__setup("unknown_nmi_panic", setup_unknown_nmi_panic);
+
 static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu)
 static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu)
 {
 {
 	unsigned char reason = get_nmi_reason();
 	unsigned char reason = get_nmi_reason();