2008-07-19 22:33:13

by Simon Arlott

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
---
Documentation/kernel-parameters.txt | 4 ++++
arch/x86/kernel/nmi.c | 7 +++++++
2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 09ad745..06fbb3a 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
Note that genuine overcurrent events won't be
reported either.

+ unknown_nmi_panic
+ [X86-32,X86-64]
+ Set unknown_nmi_panic=1 early on boot.
+
usbcore.autosuspend=
[USB] The autosuspend time delay (in seconds) used
for newly-detected USB devices (default 2). This
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index ec024b3..e0b44b7 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)

#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)
{
unsigned char reason = get_nmi_reason();
--
1.5.6.2

--
Simon Arlott


2008-07-20 08:11:24

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86: Add unknown_nmi_panic kernel parameter


* Simon Arlott <[email protected]> wrote:

> 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 <[email protected]>

applied to tip/x86/nmi, thanks Simon.

Ingo