aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Arlott <simon@fire.lp0.eu>2008-07-19 18:32:54 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-20 04:10:31 -0400
commite3a61b0a8c0e342e700a61cd554b01050f333a36 (patch)
tree76081e45b9f6aa5d857b7b4ea02cd0014a9d5227
parent5b664cb235e97afbf34db9c4d77f08ebd725335e (diff)
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>
-rw-r--r--Documentation/kernel-parameters.txt4
-rw-r--r--arch/x86/kernel/nmi.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 09ad7450647b..06fbb3aa288c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -2158,6 +2158,10 @@ and is between 256 and 4096 characters. It is defined in the file
2158 Note that genuine overcurrent events won't be 2158 Note that genuine overcurrent events won't be
2159 reported either. 2159 reported either.
2160 2160
2161 unknown_nmi_panic
2162 [X86-32,X86-64]
2163 Set unknown_nmi_panic=1 early on boot.
2164
2161 usbcore.autosuspend= 2165 usbcore.autosuspend=
2162 [USB] The autosuspend time delay (in seconds) used 2166 [USB] The autosuspend time delay (in seconds) used
2163 for newly-detected USB devices (default 2). This 2167 for newly-detected USB devices (default 2). This
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index ec024b3baad0..e0b44b7b717a 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -448,6 +448,13 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
448 448
449#ifdef CONFIG_SYSCTL 449#ifdef CONFIG_SYSCTL
450 450
451static int __init setup_unknown_nmi_panic(char *str)
452{
453 unknown_nmi_panic = 1;
454 return 1;
455}
456__setup("unknown_nmi_panic", setup_unknown_nmi_panic);
457
451static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu) 458static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu)
452{ 459{
453 unsigned char reason = get_nmi_reason(); 460 unsigned char reason = get_nmi_reason();