[PATCH] mce: fix fail to set 'monarchtimeout' via boot option

Xie XiuQi
2015-05-20T11:25:46Z

I use "mce=1,10000000" in cmdline to change the monarch timeout, but
it does not work.

The cause is that get_option() has parsed the ',' already, we need
not to check the ',' again.

--
get_option(): read an int from an option string;
if available accept a subsequent comma as well.

Return values:
0 - no int in string
1 - int found, no subsequent comma
2 - int found including a subsequent comma
3 - hyphen found to denote a range

Cc: <stable@vger.kernel.org> # 2.6.32+
Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>
---
arch/x86/kernel/cpu/mcheck/mce.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 2a2bb91..46ca8e7 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -2020,11 +2020,8 @@ static int __init mcheck_enable(char *str)
else if (!strcmp(str, "bios_cmci_threshold"))
cfg->bios_cmci_threshold = true;
else if (isdigit(str[0])) {
- get_option(&str, &(cfg->tolerant));
- if (*str == ',') {
- ++str;
+ if (get_option(&str, &(cfg->tolerant) == 2)
get_option(&str, &(cfg->monarch_timeout));
- }
} else {
pr_info("mce argument %s ignored. Please use /sys\n", str);
return 0;
--
1.8.3.1