From patchwork Mon Aug 14 07:08:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?SsO8cmdlbiBHcm/Dnw==?= X-Patchwork-Id: 9898255 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 44D17603FB for ; Mon, 14 Aug 2017 07:12:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 380F426E4A for ; Mon, 14 Aug 2017 07:12:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2D0AE2855A; Mon, 14 Aug 2017 07:12:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 6F151285A5 for ; Mon, 14 Aug 2017 07:12:15 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dh9Um-0003fb-EH; Mon, 14 Aug 2017 07:09:04 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dh9Ul-0003dh-9H for xen-devel@lists.xenproject.org; Mon, 14 Aug 2017 07:09:03 +0000 Received: from [193.109.254.147] by server-10.bemta-6.messagelabs.com id C7/FD-18185-E8C41995; Mon, 14 Aug 2017 07:09:02 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrILMWRWlGSWpSXmKPExsVyuP0Ov26fz8R Ig31LuSy+b5nM5MDocfjDFZYAxijWzLyk/IoE1owTM3tYCu4LVfxdeoClgbGZt4uRk0NCwEji 7cR/TCC2kMBCRonLPdogNpuAqsSG66dYQWwRASWJe6smg9UwCxRKnOzuA4sLCyRIvGvezAJis wDVT+86xAhi8wqYSqxsfskKMV9eouPAZLAaTqD4pX1LWSB2mUj0be1imcDIvYCRYRWjRnFqUV lqka6RsV5SUWZ6RkluYmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRqB3GYBgB+Of+YGHGCU5mJR EeRN8eiOF+JLyUyozEosz4otKc1KLDzHKcHAoSfCu9JoYKSRYlJqeWpGWmQMMM5i0BAePkghv njdQmre4IDG3ODMdInWKUZfj1YT/35iEWPLy81KlxHmfgcwQACnKKM2DGwEL+UuMslLCvIxAR wnxFKQW5WaWoMq/YhTnYFQS5mUCWcWTmVcCt+kV0BFMQEf0gdzPW1ySiJCSamA0ePT4fLdo+i /7CRv3tm09zX/+kp7ii5d60bc+FDP6ZUt2CB9/H1euvvdPXoiN/Uy+S/w65l93+ZRbXlV8frt A/kLwJEPLiw738pZWmXxwjjm34sjvW5XfvncuOPiz+ryL58XMqBOzWZJUjFR+Onivj5t448Cq NjEuu8jc1leztY8WS9o8iO5UYinOSDTUYi4qTgQAtn+VmXQCAAA= X-Env-Sender: jgross@suse.com X-Msg-Ref: server-2.tower-27.messagelabs.com!1502694541!52093525!1 X-Originating-IP: [195.135.220.15] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG X-StarScan-Received: X-StarScan-Version: 9.4.45; banners=-,-,- X-VirusChecked: Checked Received: (qmail 3994 invoked from network); 14 Aug 2017 07:09:02 -0000 Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by server-2.tower-27.messagelabs.com with DHE-RSA-CAMELLIA256-SHA encrypted SMTP; 14 Aug 2017 07:09:02 -0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id BDEEAABBC; Mon, 14 Aug 2017 07:09:01 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Mon, 14 Aug 2017 09:08:15 +0200 Message-Id: <20170814070849.20986-19-jgross@suse.com> X-Mailer: git-send-email 2.12.3 In-Reply-To: <20170814070849.20986-1-jgross@suse.com> References: <20170814070849.20986-1-jgross@suse.com> Cc: Juergen Gross , Andrew Cooper , Jan Beulich Subject: [Xen-devel] [PATCH v2 18/52] xen/arch/x86/psr.c: let custom parameter parsing routines return errno X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Modify the custom parameter parsing routines in: xen/arch/x86/psr.c to indicate whether the parameter value was parsed successfully. Cc: Jan Beulich Cc: Andrew Cooper Signed-off-by: Juergen Gross Acked-by: Wei Liu --- xen/arch/x86/psr.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c index 9ce8f17a18..397963c667 100644 --- a/xen/arch/x86/psr.c +++ b/xen/arch/x86/psr.c @@ -420,7 +420,7 @@ static const struct feat_props l2_cat_props = { }; static void __init parse_psr_bool(char *s, char *value, char *feature, - unsigned int mask) + unsigned int mask, int *rc) { if ( !strcmp(s, feature) ) { @@ -434,13 +434,17 @@ static void __init parse_psr_bool(char *s, char *value, char *feature, opt_psr &= ~mask; else if ( val_int == 1 ) opt_psr |= mask; + else + *rc = -EINVAL; } } } -static void __init parse_psr_param(char *s) +static int __init parse_psr_param(char *s) { char *ss, *val_str; + const char *q; + int rc = 0; do { ss = strchr(s, ','); @@ -451,18 +455,28 @@ static void __init parse_psr_param(char *s) if ( val_str ) *val_str++ = '\0'; - parse_psr_bool(s, val_str, "cmt", PSR_CMT); - parse_psr_bool(s, val_str, "cat", PSR_CAT); - parse_psr_bool(s, val_str, "cdp", PSR_CDP); + parse_psr_bool(s, val_str, "cmt", PSR_CMT, &rc); + parse_psr_bool(s, val_str, "cat", PSR_CAT, &rc); + parse_psr_bool(s, val_str, "cdp", PSR_CDP, &rc); if ( val_str && !strcmp(s, "rmid_max") ) - opt_rmid_max = simple_strtoul(val_str, NULL, 0); + { + opt_rmid_max = simple_strtoul(val_str, &q, 0); + if ( *q ) + rc = -EINVAL; + } if ( val_str && !strcmp(s, "cos_max") ) - opt_cos_max = simple_strtoul(val_str, NULL, 0); + { + opt_cos_max = simple_strtoul(val_str, &q, 0); + if ( *q ) + rc = -EINVAL; + } s = ss + 1; } while ( ss ); + + return rc; } custom_param("psr", parse_psr_param);