diff options
author | Andi Kleen <ak@suse.de> | 2005-09-12 12:49:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-12 13:49:57 -0400 |
commit | 8c566ef5f3eb5d9daf61d0fa31d82c211f601ba0 (patch) | |
tree | 646730e657f27a23b3081fafafe494121e0d8075 | |
parent | 673242c10d535bfe238d9d8e82ac93432d35b88e (diff) |
[PATCH] x86-64: Add command line option to set machine check tolerance level
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | Documentation/x86_64/boot-options.txt | 5 | ||||
-rw-r--r-- | arch/x86_64/kernel/mce.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/Documentation/x86_64/boot-options.txt b/Documentation/x86_64/boot-options.txt index 678e8f192db2..ffe1c062088b 100644 --- a/Documentation/x86_64/boot-options.txt +++ b/Documentation/x86_64/boot-options.txt | |||
@@ -11,6 +11,11 @@ Machine check | |||
11 | If your BIOS doesn't do that it's a good idea to enable though | 11 | If your BIOS doesn't do that it's a good idea to enable though |
12 | to make sure you log even machine check events that result | 12 | to make sure you log even machine check events that result |
13 | in a reboot. | 13 | in a reboot. |
14 | mce=tolerancelevel (number) | ||
15 | 0: always panic, 1: panic if deadlock possible, | ||
16 | 2: try to avoid panic, 3: never panic or exit (for testing) | ||
17 | default is 1 | ||
18 | Can be also set using sysfs which is preferable. | ||
14 | 19 | ||
15 | nomce (for compatibility with i386): same as mce=off | 20 | nomce (for compatibility with i386): same as mce=off |
16 | 21 | ||
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c index 87ea8fdd43fd..a39a3edf9ed4 100644 --- a/arch/x86_64/kernel/mce.c +++ b/arch/x86_64/kernel/mce.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/fs.h> | 17 | #include <linux/fs.h> |
18 | #include <linux/cpu.h> | 18 | #include <linux/cpu.h> |
19 | #include <linux/percpu.h> | 19 | #include <linux/percpu.h> |
20 | #include <linux/ctype.h> | ||
20 | #include <asm/processor.h> | 21 | #include <asm/processor.h> |
21 | #include <asm/msr.h> | 22 | #include <asm/msr.h> |
22 | #include <asm/mce.h> | 23 | #include <asm/mce.h> |
@@ -489,6 +490,7 @@ static int __init mcheck_disable(char *str) | |||
489 | 490 | ||
490 | /* mce=off disables machine check. Note you can reenable it later | 491 | /* mce=off disables machine check. Note you can reenable it later |
491 | using sysfs. | 492 | using sysfs. |
493 | mce=TOLERANCELEVEL (number, see above) | ||
492 | mce=bootlog Log MCEs from before booting. Disabled by default to work | 494 | mce=bootlog Log MCEs from before booting. Disabled by default to work |
493 | around buggy BIOS that leave bogus MCEs. */ | 495 | around buggy BIOS that leave bogus MCEs. */ |
494 | static int __init mcheck_enable(char *str) | 496 | static int __init mcheck_enable(char *str) |
@@ -499,6 +501,8 @@ static int __init mcheck_enable(char *str) | |||
499 | mce_dont_init = 1; | 501 | mce_dont_init = 1; |
500 | else if (!strcmp(str, "bootlog")) | 502 | else if (!strcmp(str, "bootlog")) |
501 | mce_bootlog = 1; | 503 | mce_bootlog = 1; |
504 | else if (isdigit(str[0])) | ||
505 | get_option(&str, &tolerant); | ||
502 | else | 506 | else |
503 | printk("mce= argument %s ignored. Please use /sys", str); | 507 | printk("mce= argument %s ignored. Please use /sys", str); |
504 | return 0; | 508 | return 0; |