From patchwork Fri Apr 22 09:58:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12823173 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B1457C433F5 for ; Fri, 22 Apr 2022 09:59:18 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.310790.527709 (Exim 4.92) (envelope-from ) id 1nhq4A-0002dG-A8; Fri, 22 Apr 2022 09:59:06 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 310790.527709; Fri, 22 Apr 2022 09:59:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nhq4A-0002d9-75; Fri, 22 Apr 2022 09:59:06 +0000 Received: by outflank-mailman (input) for mailman id 310790; Fri, 22 Apr 2022 09:59:05 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nhq49-0002d3-1n for xen-devel@lists.xenproject.org; Fri, 22 Apr 2022 09:59:05 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id d71023c4-c222-11ec-a405-831a346695d4; Fri, 22 Apr 2022 11:59:03 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2113.outbound.protection.outlook.com [104.47.18.113]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-N0Rj8CfzO1WhK7WeZIcLRA-1; Fri, 22 Apr 2022 11:59:01 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by GV1PR04MB9103.eurprd04.prod.outlook.com (2603:10a6:150:22::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.13; Fri, 22 Apr 2022 09:58:59 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5cb0:5195:4203:7c2f]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5cb0:5195:4203:7c2f%7]) with mapi id 15.20.5186.015; Fri, 22 Apr 2022 09:58:59 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: d71023c4-c222-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1650621543; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gfLEJWB8dYg/5ByFirWLKx4TpYb2Ys2tqREAkfOhScg=; b=XEGTzxG0yZaCSYfViYmTaeRzhE12JfQ/6URGl7oe8zwDTM55hTFEz/dDZ7GUdo0tmHPUSP qs84j8Inv7B2IRdQ4OmabYNyOKJnemELZ41B3zhH8hVhI/i2aLFIL7KJuPPxfEWpnzOcNe RHgm7WchiIMZ7kCWGNj8NGL8usTECeQ= X-MC-Unique: N0Rj8CfzO1WhK7WeZIcLRA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OVUu5E7UQ+vfn6de5xu7ZJ2A/f5xDXBY31el1rzdzJ2oq1iuSkt1JX/9bqEkdlhVWMJz9QX8s02d9WWNLeYzrK0Nv70PZHGt9MO+uLHmugPJsHbobyT8/Q0KhUGNrr2y92cA/CMLKjtvUaWaOmXg/555I+tsw3uSK0XeqSK6HYH6RNuZHVddAGJ8Mh/ekKmlBvlFfo5yyPrKg6GKGTgsvbTLm962U3vPcBReSj4TfNF8R8+2wOeyqIGKcxfvWJv4VPrLq+bY4DGEzlvXNFmbpe6lRC/6bnYSfJP0J6V1+76xoFe15bilrU/u+7sHA3F+b5PS9q9JMRwqtNwffHpSkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gfLEJWB8dYg/5ByFirWLKx4TpYb2Ys2tqREAkfOhScg=; b=ev3zs7mr4fLd6PG4QVP2/dTS3yW182p09URhVzEbiF2cJRrhwXKrqfXe7zkebxQ8JT8C3dsi8xb5t5IoIaEnoQoExEn/edIcHnl228E15GlP6FfkWjV+3nROqbHp9eokP1GufoC8GgFPJg6QudpbefE7iyguozYeUBqloVDfI8kt4y7Y9cwEy7U22L0z8PfWL2jE8/9yOPoSJTAXvBkdx3zRd+CQXgVoRAUnlPj/FnNXNBCQMYkuIu01sqXYbttxrsNCLjR7GWBW3rhPVnbxUb53lwXpU6ocVfJBw+voecwWA9BqCOWFt0mDSQxxiQSOo73mLH+w6hhMTMDTFIKy8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <431d4212-07b8-63d5-1a4d-7e8c7a9108ea@suse.com> Date: Fri, 22 Apr 2022 11:58:58 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Content-Language: en-US To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Andrew Cooper From: Jan Beulich Subject: [PATCH] VT-d: fix !HVM build X-ClientProxiedBy: AS9PR06CA0353.eurprd06.prod.outlook.com (2603:10a6:20b:466::30) To DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b4bce51a-70b4-42a1-6c0a-08da2446b8c9 X-MS-TrafficTypeDiagnostic: GV1PR04MB9103:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MGr8SJ3NfntPCNW2x0bbttrBvzBh2PRBSbEhDmxMtPE9dR68sN0Pz9yzLlchc6GO6tfiIUdwzpRtNelnHN2rfbAADRpUgtPH1HzqvMPuPk5iUi1RILeSW5UmRRtLsxC/6Az/8gj7Z79E0ezfzxEPdGsC4FghX75QJC5nKqLqNiADOtcaeWHnMTiFC/gqc6rFEoMQwQbj76Wom48F3E2O5Hxy5KCTDDN4cckMAa9al1N5IRuwBo5JoxYeOV1mAlMMLN/RbZOES2Ywxsar7gDGgcVj5OHf3zg2l3r6qXwSPYKMQoGQSi4OEFqliUvWlldeAvJoX52+1J/ThX5V/w+fVHRXsdYcuJ3oNXeMiDBb6hDk1fac5tAX/rr8hZ9H5vk7lkhwOEjSpsTEtS0tFi7kz1+EA3LUeG0wQf1shUXY0NyNUf/b8IhGfArAP8xGcZMtMEqFJUbjX1r7oKoA7VaJWKkyRggSntbfj3jOv8rnKT5F3ikeWBBFZ3HrVuIbRVfe1YpsvByzNqjD/Xc2rHw7chSP0EVqHhlwmTmvwMIXmVnPQ/8j6O9+b54R2uk+I185dL3vEQh/rxnd/sDLBl6T0BPAwchNctIkVrCRWue0r5WFO9etuvvP6a0iX/YfegkbxMaoZt1mIs/Ht08oiNHLRgfCSqB5rVF+IghvsxH9yUZ30CuIHii5WRxSxxlB243eu5imjF7o4jK7MCsjwUIE8594+u3g0HPESX92R7ZdhHk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8616.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(86362001)(31696002)(5660300002)(38100700002)(316002)(8936002)(66556008)(66946007)(8676002)(6916009)(4326008)(54906003)(6512007)(66476007)(6506007)(6486002)(186003)(508600001)(2616005)(26005)(83380400001)(31686004)(2906002)(36756003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?Hnf8LncOwk5/n1U/BXDMWcEWTdnH?= =?utf-8?q?iIoe1NWE0YASTuXLs8jAYCSY7wV5mFPuCvxN0yi9MqqVzyRFZTVG550wH9E4WP0TD?= =?utf-8?q?jlrgjUPxLcOAWn8hsPc4Q7WHu3IcgoKo/BGdRfy1n/aX64/+wsD2Z0xVKWqAj4Hmq?= =?utf-8?q?PVZW/QBKzLpY42C8xzCHMk9T7adyYue2Ub1z4oHf5qwXUBdC3rr7vbQWWXMh6smn6?= =?utf-8?q?MDmjoxUK9NFB0qxrh9usTXybAtOdkXz5ZiDW1gU/WhAy6XdSEulUHS6K/8Ucjbu7E?= =?utf-8?q?667P0pmyLvM01tpXpcnindaFIInHgMvbvdOElnQuqaPnEZ25ytjEZCmHjbfHx+23n?= =?utf-8?q?LRRW7HXBuW8aRm1EPNLIh2ckCXOvfUNA4hrB2RVPsrhLlsJpM1WDru2bmxJSht4Vr?= =?utf-8?q?0qJSO/DrQeToOmML5XdONau0+/kaBsyiB9aydtHto+IJ2Gt0Ttom2ui2zBbsvxM6G?= =?utf-8?q?18ZgLb3Zqw7OXYKNIjPmGNNMb0E6DHWk40wsaS1XFa33+SgBbkh1dbLI80Y+pEMlf?= =?utf-8?q?hghtNmEm80ggNnTKrpqCxbqt3a6l63vWhAuHPMDO/fx9T/R8HiW6WI4r3jiTwqHFw?= =?utf-8?q?W4x7oOwOTNiqNqx0V5EhwtcHKcYnC+cPdYTYNR0Ivq2RCNhX+WIhJQhYzhvtCdtzK?= =?utf-8?q?wzrnHILIyTeMnRWMN4x42NHtWYl0pN89bMwahyusnXjBRhFGGQs1CXGLt4dxK/Egu?= =?utf-8?q?OTA5Z6yKwGpGZ/ZvYjFdeXRYghpXM5cTT0nL9OwSmEjqr4rpNOF76YAD0SiiEU6FG?= =?utf-8?q?bgwWFkx43Zl9J4ihNZaNVJdIwxANGFI4f58w0AnJgp7v92w3Ozxk1r1dE+hR/oFse?= =?utf-8?q?a2YGmp790uIP0Sr4aVYfPz23EF5378J2+VUBmwPMrIW1+w7ug8DhcYbPUZP/X3oXf?= =?utf-8?q?fh/A//Bu6xYeiFIoLxZCxFd8j3SsNjWQFkZenDvaoE1WHP863AOMrM2t2WV/1KwWK?= =?utf-8?q?9PaGGLABW6Q3NwNYivyCVNBEpwGcv1TLJeVTIXTLAPmjzXDCgNEuf9qHuVTKAwRjT?= =?utf-8?q?y+ESmmVXkgXzszClF78j4Op/H6LSDGZvblcmGJBZwtfsLJ20a3pGT0PoZoAu+pnqT?= =?utf-8?q?1aDW4B8M0HEfVRgr33f5AwuFU8SOZLGhiOm0nTpYgnjhVW90RQDMk+YXtsDk/R2Yj?= =?utf-8?q?5KvcHyM2Qgznv5opm7/t7r30g1+h/PAkDk3333vwe5Wdpyirnjmb1AEMv+KpAUegn?= =?utf-8?q?WyIRyNOGMuC9akZuLnafmajLclfB4S/ZsSgAYcKiAei+W2JpBqJ3x0bNdJJ9zwkz1?= =?utf-8?q?0OYkABsrwWFsgil6unfhXrGj47wA98xR2RCTBA3A/x2QN0/1g20hYBTA5gA70QWmi?= =?utf-8?q?TuGD7G6wSO62hL+WkOoTgytL8DQIWA0aX0JAvJsiCK45XeSbU0BIeDvn69ncQkUcg?= =?utf-8?q?bMRug21eSyhq8DnAmCTFSCLdfqYYwLQ4lJ8ySyYzKT/CLjSNhF4i5Rcvf7mfIt+PW?= =?utf-8?q?QV9mztuO8TVwsjcH5BsACY4+Y5i+wjuhL6WbjO1aul6dVNXh+zGDHVka1th2RpDXz?= =?utf-8?q?v4XW5vA4ZLLXFXhMJ6BiJKIM1YToJ40b25XZfoMq431GPxHVBNwNLVvoYEYncCDNC?= =?utf-8?q?nlV71qLUrLMgQk1aurtuRyeI7FpW5Sh70XLcUqvo/f86SUBeOqrYHVsGrxdYyvhSi?= =?utf-8?q?XxThP67dN5Ntq3BUzbdIDUDA+R0032Cw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4bce51a-70b4-42a1-6c0a-08da2446b8c9 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2022 09:58:59.4427 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dniJGgykPiU3XtJYj0H/GGIJK9AMVUKrSF/WweAGEI+5inWQIgqJw5S4C6CEsjNtJiPahlgZvjAX2A3jQf4jXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9103 EPT is of no interest when !HVM. While I'm observing gcc11 to fully eliminate the function, older gcc's DCE looks to not be as good. Aid the compiler in eliminating the accesses of opt_hap_{2mb,1gb}, which otherwise cause undefined symbol errors when linking. While there adjust types. Fixes: c479415610f0 ("x86/P2M: p2m.c is HVM-only") Reported-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper , preferably with Reviewed-by: Kevin Tian --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -2155,14 +2155,17 @@ static int cf_check intel_iommu_lookup_p return 0; } -static int __init vtd_ept_page_compatible(struct vtd_iommu *iommu) +static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu) { - u64 ept_cap, vtd_cap = iommu->cap; + uint64_t ept_cap, vtd_cap = iommu->cap; + + if ( !IS_ENABLED(CONFIG_HVM) ) + return false; /* EPT is not initialised yet, so we must check the capability in * the MSR explicitly rather than use cpu_has_vmx_ept_*() */ if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, ept_cap) != 0 ) - return 0; + return false; return (ept_has_2mb(ept_cap) && opt_hap_2mb) <= cap_sps_2mb(vtd_cap) && (ept_has_1gb(ept_cap) && opt_hap_1gb) <= cap_sps_1gb(vtd_cap);