From nobody Mon Feb 9 11:32:24 2026 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1555172697; cv=none; d=zoho.com; s=zohoarc; b=HkIZvXtEktl8OQFXjyI6aIw+ZNIx9i9e11+bG2GVqJqZyOA4Xil5q4HhxgxaEmg4oyfeiIb2Vc3dH2eVY2hZGtDQT2bkweo+BAqYFf+Xeil9uUwUz1WcSYD0FgsqwGNmm8jm5dr2ZjzKo4WEn9StXKqy+qIDOyZDRPX7//tNbQ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1555172697; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=wJ1LZyq/nicWJ+WmT2Ao2yZG/1Ni9BRqhKepkfeWLP4=; b=SwTaI4WoM5xkAxXh1dGeFd4jxHi6tIJhufdaVtzWqnV8XHM+lwU1Ki4fBtwXn2FIMpwbBLZyxedXc1ypZqkSib6F35sxaqSBrlpcSu02TABGV7a5wvQ0Rnzcr0SN3TTPXtMMtCHz3LPw0/WE9I0Kve74Tfid+z1XIdv9wlUdkR8= ARC-Authentication-Results: i=1; mx.zoho.com; spf=none (zoho.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1555172697282773.8888370211043; Sat, 13 Apr 2019 09:24:57 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hFLRK-0005FV-Up; Sat, 13 Apr 2019 16:23:38 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hFLRJ-0005FH-MX for xen-devel@lists.xenproject.org; Sat, 13 Apr 2019 16:23:37 +0000 Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 7d460082-5e08-11e9-92d7-bc764e045a96; Sat, 13 Apr 2019 16:23:36 +0000 (UTC) X-Inumbo-ID: 7d460082-5e08-11e9-92d7-bc764e045a96 X-IronPort-AV: E=Sophos;i="5.60,345,1549929600"; d="scan'208";a="83508410" From: Andrew Cooper To: Xen-devel Date: Sat, 13 Apr 2019 17:22:10 +0100 Message-ID: <1555172532-23814-2-git-send-email-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1555172532-23814-1-git-send-email-andrew.cooper3@citrix.com> References: <1555172532-23814-1-git-send-email-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 1/3] x86/spec-ctrl: Reposition the XPTI command line parsing logic X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" It has ended up in the middle of the mitigation calculation logic. Move it= to be beside the other command line parsing. No functional change. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- CC: Jan Beulich CC: Wei Liu CC: Roger Pau Monn=C3=A9 --- xen/arch/x86/spec_ctrl.c | 134 +++++++++++++++++++++++--------------------= ---- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c index 4fd09f8..88b56f9 100644 --- a/xen/arch/x86/spec_ctrl.c +++ b/xen/arch/x86/spec_ctrl.c @@ -173,6 +173,73 @@ static int __init parse_spec_ctrl(const char *s) } custom_param("spec-ctrl", parse_spec_ctrl); =20 +int8_t __read_mostly opt_xpti_hwdom =3D -1; +int8_t __read_mostly opt_xpti_domu =3D -1; + +static __init void xpti_init_default(uint64_t caps) +{ + if ( boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD ) + caps =3D ARCH_CAPS_RDCL_NO; + + if ( caps & ARCH_CAPS_RDCL_NO ) + { + if ( opt_xpti_hwdom < 0 ) + opt_xpti_hwdom =3D 0; + if ( opt_xpti_domu < 0 ) + opt_xpti_domu =3D 0; + } + else + { + if ( opt_xpti_hwdom < 0 ) + opt_xpti_hwdom =3D 1; + if ( opt_xpti_domu < 0 ) + opt_xpti_domu =3D 1; + } +} + +static __init int parse_xpti(const char *s) +{ + const char *ss; + int val, rc =3D 0; + + /* Interpret 'xpti' alone in its positive boolean form. */ + if ( *s =3D=3D '\0' ) + opt_xpti_hwdom =3D opt_xpti_domu =3D 1; + + do { + ss =3D strchr(s, ','); + if ( !ss ) + ss =3D strchr(s, '\0'); + + switch ( parse_bool(s, ss) ) + { + case 0: + opt_xpti_hwdom =3D opt_xpti_domu =3D 0; + break; + + case 1: + opt_xpti_hwdom =3D opt_xpti_domu =3D 1; + break; + + default: + if ( !strcmp(s, "default") ) + opt_xpti_hwdom =3D opt_xpti_domu =3D -1; + else if ( (val =3D parse_boolean("dom0", s, ss)) >=3D 0 ) + opt_xpti_hwdom =3D val; + else if ( (val =3D parse_boolean("domu", s, ss)) >=3D 0 ) + opt_xpti_domu =3D val; + else if ( *s ) + rc =3D -EINVAL; + break; + } + + s =3D ss + 1; + } while ( *ss ); + + return rc; +} +custom_param("xpti", parse_xpti); + int8_t __read_mostly opt_pv_l1tf_hwdom =3D -1; int8_t __read_mostly opt_pv_l1tf_domu =3D -1; =20 @@ -634,73 +701,6 @@ static __init void l1tf_calculations(uint64_t caps) : (3ul << (paddr_bits - 2)))); } =20 -int8_t __read_mostly opt_xpti_hwdom =3D -1; -int8_t __read_mostly opt_xpti_domu =3D -1; - -static __init void xpti_init_default(uint64_t caps) -{ - if ( boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD ) - caps =3D ARCH_CAPS_RDCL_NO; - - if ( caps & ARCH_CAPS_RDCL_NO ) - { - if ( opt_xpti_hwdom < 0 ) - opt_xpti_hwdom =3D 0; - if ( opt_xpti_domu < 0 ) - opt_xpti_domu =3D 0; - } - else - { - if ( opt_xpti_hwdom < 0 ) - opt_xpti_hwdom =3D 1; - if ( opt_xpti_domu < 0 ) - opt_xpti_domu =3D 1; - } -} - -static __init int parse_xpti(const char *s) -{ - const char *ss; - int val, rc =3D 0; - - /* Interpret 'xpti' alone in its positive boolean form. */ - if ( *s =3D=3D '\0' ) - opt_xpti_hwdom =3D opt_xpti_domu =3D 1; - - do { - ss =3D strchr(s, ','); - if ( !ss ) - ss =3D strchr(s, '\0'); - - switch ( parse_bool(s, ss) ) - { - case 0: - opt_xpti_hwdom =3D opt_xpti_domu =3D 0; - break; - - case 1: - opt_xpti_hwdom =3D opt_xpti_domu =3D 1; - break; - - default: - if ( !strcmp(s, "default") ) - opt_xpti_hwdom =3D opt_xpti_domu =3D -1; - else if ( (val =3D parse_boolean("dom0", s, ss)) >=3D 0 ) - opt_xpti_hwdom =3D val; - else if ( (val =3D parse_boolean("domu", s, ss)) >=3D 0 ) - opt_xpti_domu =3D val; - else if ( *s ) - rc =3D -EINVAL; - break; - } - - s =3D ss + 1; - } while ( *ss ); - - return rc; -} -custom_param("xpti", parse_xpti); - void __init init_speculation_mitigations(void) { enum ind_thunk thunk =3D THUNK_DEFAULT; --=20 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel