From patchwork Mon Aug 14 07:08:04 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: 9898261 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 F114060230 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 E395927D16 for ; Mon, 14 Aug 2017 07:12:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D71FD27FB0; 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 966E6285B3 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 1dh9Vi-0005jl-Ka; Mon, 14 Aug 2017 07:10:02 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dh9Vg-0005bA-Ta for xen-devel@lists.xenproject.org; Mon, 14 Aug 2017 07:10:01 +0000 Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id 74/20-02177-8CC41995; Mon, 14 Aug 2017 07:10:00 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPLMWRWlGSWpSXmKPExsVyuP0Ov+5xn4m RBhteSFl83zKZyYHR4/CHKywBjFGsmXlJ+RUJrBnrVl9mLtgsXnGp+RtrA+M3wS5GTg4JASOJ txP/MYHYQgILGSU6HweC2GwCqhIbrp9iBbFFBJQk7q2aDFbDLFAocbK7DywuLJAusb/rAVsXI wcHC1D99PP5ICavgInE/9tKENPlJToOTGYBsTkFTCUu7VvKArHJRKJvaxfLBEbuBYwMqxg1il OLylKLdA3N9ZKKMtMzSnITM3N0DQ2M9XJTi4sT01NzEpOK9ZLzczcxAj3LAAQ7GF+e9jzEKMn BpCTKm+DTGynEl5SfUpmRWJwRX1Sak1p8iFGGg0NJgneG98RIIcGi1PTUirTMHGCIwaQlOHiU RHhXgKR5iwsSc4sz0yFSpxh1OV5N+P+NSYglLz8vVUqc9ylIkQBIUUZpHtwIWLhfYpSVEuZlB DpKiKcgtSg3swRV/hWjOAejkjDvZ5ApPJl5JXCbXgEdwQR0RB/I/bzFJYkIKakGxiP3ju7dLl yk8/TIpN9hxnzWxw4obsi24xCNPFHk3pbu9kV+KscfnwShjWH/J/wv319QOS+9MDBewPzWza8 lKfP1y08+nCJrbnSsOPktV9DXgB19HA/W9h/J4RV2LlTMnppdujdzpk5Gk8bizmldLbWLn+6p bhG8znV563oe/7/LtPjXPVj1WImlOCPRUIu5qDgRAOasxJxyAgAA X-Env-Sender: jgross@suse.com X-Msg-Ref: server-5.tower-31.messagelabs.com!1502694599!106625770!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 37131 invoked from network); 14 Aug 2017 07:09:59 -0000 Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by server-5.tower-31.messagelabs.com with DHE-RSA-CAMELLIA256-SHA encrypted SMTP; 14 Aug 2017 07:09:59 -0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1711EACFA; Mon, 14 Aug 2017 07:08:59 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Mon, 14 Aug 2017 09:08:04 +0200 Message-Id: <20170814070849.20986-8-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 07/52] xen/arch/x86/dom0_build.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/dom0_build.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/dom0_build.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c index 0c125e61eb..21eb640a48 100644 --- a/xen/arch/x86/dom0_build.c +++ b/xen/arch/x86/dom0_build.c @@ -47,7 +47,7 @@ static long __init parse_amt(const char *s, const char **ps) long pages = parse_size_and_unit((*s == '-') ? s+1 : s, ps) >> PAGE_SHIFT; return (*s == '-') ? -pages : pages; } -static void __init parse_dom0_mem(const char *s) +static int __init parse_dom0_mem(const char *s) { do { if ( !strncmp(s, "min:", 4) ) @@ -57,13 +57,15 @@ static void __init parse_dom0_mem(const char *s) else dom0_nrpages = parse_amt(s, &s); } while ( *s++ == ',' ); + + return *s ? -EINVAL : 0; } custom_param("dom0_mem", parse_dom0_mem); static unsigned int __initdata opt_dom0_max_vcpus_min = 1; static unsigned int __initdata opt_dom0_max_vcpus_max = UINT_MAX; -static void __init parse_dom0_max_vcpus(const char *s) +static int __init parse_dom0_max_vcpus(const char *s) { if ( *s == '-' ) /* -M */ opt_dom0_max_vcpus_max = simple_strtoul(s + 1, &s, 0); @@ -77,6 +79,8 @@ static void __init parse_dom0_max_vcpus(const char *s) else if ( *s++ == '-' && *s ) /* N-M */ opt_dom0_max_vcpus_max = simple_strtoul(s, &s, 0); } + + return *s ? -EINVAL : 0; } custom_param("dom0_max_vcpus", parse_dom0_max_vcpus); @@ -85,7 +89,7 @@ static __initdata unsigned int dom0_pxms[MAX_NUMNODES] = { [0 ... MAX_NUMNODES - 1] = ~0 }; static __initdata bool dom0_affinity_relaxed; -static void __init parse_dom0_nodes(const char *s) +static int __init parse_dom0_nodes(const char *s) { do { if ( isdigit(*s) ) @@ -103,6 +107,8 @@ static void __init parse_dom0_nodes(const char *s) else break; } while ( ++dom0_nr_pxms < ARRAY_SIZE(dom0_pxms) && *s++ == ',' ); + + return *s ? -EINVAL : 0; } custom_param("dom0_nodes", parse_dom0_nodes); @@ -183,9 +189,10 @@ bool __initdata dom0_pvh; * - pvh Create a PVHv2 Dom0. * - shadow Use shadow paging for Dom0. */ -static void __init parse_dom0_param(char *s) +static int __init parse_dom0_param(char *s) { char *ss; + int rc = 0; do { @@ -199,9 +206,13 @@ static void __init parse_dom0_param(char *s) else if ( !strcmp(s, "shadow") ) opt_dom0_shadow = true; #endif + else + rc = -EINVAL; s = ss + 1; } while ( ss ); + + return rc; } custom_param("dom0", parse_dom0_param);