From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754067AbbETRnb (ORCPT ); Wed, 20 May 2015 13:43:31 -0400 Received: from mail.skyhub.de ([78.46.96.112]:40110 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753033AbbETRn3 (ORCPT ); Wed, 20 May 2015 13:43:29 -0400 Date: Wed, 20 May 2015 19:43:25 +0200 From: Borislav Petkov To: Xie XiuQi Cc: tony.luck@intel.com, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mce: fix fail to set 'monarchtimeout' via boot option Message-ID: <20150520174325.GD3424@pd.tnic> References: <1432120943-25028-1-git-send-email-xiexiuqi@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1432120943-25028-1-git-send-email-xiexiuqi@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 20, 2015 at 07:22:23PM +0800, Xie XiuQi wrote: > 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: # 2.6.32+ I don't think that's a serious enough a bug to justify the stable tag. > Signed-off-by: Xie XiuQi > --- > 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) This patch wasn't build-tested, right: arch/x86/kernel/cpu/mcheck/mce.c: In function ‘mcheck_enable’: arch/x86/kernel/cpu/mcheck/mce.c:1993:41: warning: comparison between pointer and integer if (get_option(&str, &(cfg->tolerant) == 2) ^ arch/x86/kernel/cpu/mcheck/mce.c:1993:24: warning: passing argument 2 of ‘get_option’ makes pointer from integer without a cast if (get_option(&str, &(cfg->tolerant) == 2) ^ In file included from include/asm-generic/bug.h:13:0, from ./arch/x86/include/asm/bug.h:35, from include/linux/bug.h:4, from include/linux/thread_info.h:11, from arch/x86/kernel/cpu/mcheck/mce.c:13: include/linux/kernel.h:420:12: note: expected ‘int *’ but argument is of type ‘int’ extern int get_option(char **str, int *pint); ^ arch/x86/kernel/cpu/mcheck/mce.c:1994:4: error: expected ‘)’ before ‘get_option’ get_option(&str, &(cfg->monarch_timeout)); ^ arch/x86/kernel/cpu/mcheck/mce.c:1995:2: error: expected expression before ‘}’ token } else { ^ make[4]: *** [arch/x86/kernel/cpu/mcheck/mce.o] Error 1 make[3]: *** [arch/x86/kernel/cpu/mcheck] Error 2 make[2]: *** [arch/x86/kernel/cpu] Error 2 make[1]: *** [arch/x86/kernel] Error 2 make: *** [arch/x86] Error 2 make: *** Waiting for unfinished jobs.... > get_option(&str, &(cfg->monarch_timeout)); > - } > } else { > pr_info("mce argument %s ignored. Please use /sys\n", str); > return 0; Anyway, I fixed it up and applied it. Thanks. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. --