From patchwork Tue Dec 6 13:56:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13065828 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 2A310C352A1 for ; Tue, 6 Dec 2022 13:56:19 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.454890.712459 (Exim 4.92) (envelope-from ) id 1p2YQc-0005wU-LT; Tue, 06 Dec 2022 13:56:10 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 454890.712459; Tue, 06 Dec 2022 13:56:10 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1p2YQc-0005wN-II; Tue, 06 Dec 2022 13:56:10 +0000 Received: by outflank-mailman (input) for mailman id 454890; Tue, 06 Dec 2022 13:56:09 +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 1p2YQb-0005wD-AD for xen-devel@lists.xenproject.org; Tue, 06 Dec 2022 13:56:09 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0625.outbound.protection.outlook.com [2a01:111:f400:fe0e::625]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id bbc92098-756d-11ed-91b6-6bf2151ebd3b; Tue, 06 Dec 2022 14:56:08 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PAXPR04MB8670.eurprd04.prod.outlook.com (2603:10a6:102:21d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.8; Tue, 6 Dec 2022 13:56:05 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5880.014; Tue, 6 Dec 2022 13:56:04 +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: bbc92098-756d-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hyPlGV8dX/tnNGnoMmJYL9xDZbKyE4moXoTdRMWBfihBxXtIYJAxdltot3faedhjh62SOII5LvpYYThvWm5HyKxRy59K2eygNUaQZ4wM0Dc492RMvNzHYcXejeWkCkBkedwDkHsYucuXekZrciHWTih5tFlL7tlBg/7I81xCy4IibOuy5ngsCQ+ot11emGolqAyov/qSZGOleyVq75j75ymFBpTU5v+I8wMoUQ3CZO4QITrSi2TyDSX5ZXXfCWZ2JPyCpMIkKPsICujygDQ7HZMmAFGgiImBURALvoc+VBAgpIwXu2j5go6gqvyeTqkx+G2LViv4kmBgi/z5TCRoFg== 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=8k9Cg9eVliAtip8iorn3Xux77iG61ZlTqy6/GtyMv9o=; b=YJG0Qxd5BfLvxYyhoUZosTVrQVtFoLqstzghpboucA1i9PQC7mqygASANApNw2TKXpnuXQPERR65Zpxcz+HbPpFpmyfWWqlObERgsoILvPYuzKzmo9NVjT5CpESq+ZWGPg94Ac87gyczLI4kl3rdV/xzTAMkZAodIEDL3ljUgy4zIkPlvb8mS5pRmcq8RLwrfujiDZP6u1KaWqKzdMgaqd6R3+aenH/ip2iE7aCP2/ZikIC/FySmYtWRpw/ImJGlsvQK5plA/X4kB8mvlnK2z6U+2MPQUvRPgdAerkd+F3975HXd2aBOKDEr5pVPFIUlhjzfEjQNV/g7vD1XpXmNMA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8k9Cg9eVliAtip8iorn3Xux77iG61ZlTqy6/GtyMv9o=; b=pOSPqAKsBakrtZ/uHI2lTyLBAH1Hwvkx52/12HwstX0bbu2PyuiYS5EOfwhSBNQkLVa5JrXVpuBmBOx0nCKXIppl7gEKGq+Cy9HAYm0asBnLslDuW3AcL8yCOJDC2FH2o3zTUD6RlwPlQCHNfmXu7K9Lt+7flNb8QUZpfZZ+dmzHfd4q0z7nAvV6021PPGoTnhGcGSCMlxAFLkoNiFyUymov/XMVgxOEwUcnwPBmiyC2r1Ur5F+aAmjJCzGc+OLhafwOx1kPBMsMSfPMlbC0THJIP1RDcYvi9b7PwvaLC9AZWF5qNCKwVRYIBKajIsz7lJK6Cn0dFUp8sxVmQM2Zmg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 6 Dec 2022 14:56:03 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: [PATCH 4/5] x86/tboot: correct IOMMU (VT-d) interaction Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= , George Dunlap , Lukasz Hawrylko , "Daniel P. Smith" , =?utf-8?q?Mateusz_M=C3=B3?= =?utf-8?q?wka?= References: <41a370eb-09b3-6e0f-7fb1-2d6e33d25021@suse.com> In-Reply-To: <41a370eb-09b3-6e0f-7fb1-2d6e33d25021@suse.com> X-ClientProxiedBy: FR3P281CA0166.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a0::9) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PAXPR04MB8670:EE_ X-MS-Office365-Filtering-Correlation-Id: 7ead8991-e37a-43c5-c6fe-08dad7919dcc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zF2NeH2QFHYGf1V0dqa3VfRfDDg2pYkxWxIxF6emNFx8jETssaFVDhYz8fbKonNS7ofOLN0tmNP+Q92Jqm+gWx6G3GiEVMMCx3fERwpohfoA8Y7yMcPPbGlOyDsAty3t23fta2qLX5Pt3LwbtjUNVCUnvWETz3065jcwu/VHyFLy9+aNE7rDOIMcwoJnPuONTq8YTVd6pYhelGNQ3jg8Ek/AuA+7ykK4OV891m8RiFzb7v9WIsnhx+cOJ7IJRhfVrcGp4VMTUloq1Bn1ZMR0aD4J/hnipobqaqc71lIZi0ThCIQiij11Crd7vcxuST75KkNo9wg+ENdlUv/aRkoUC6nIzsMlxWwCuSTgv1//nA5QsnExMcOfor4sDr6LUaJ1ESIHbNTtIrdVnG+PG3ZiNK7eFXjh8AyNUqf6suPfd2h2/nq4u8+6RxsmQthJb7nObnQkFhYa2SKHCmDc/Bw4nTAQcoqmQH7Sn5NmByt/LARhScCxHnLK0B36JJQdXcrv66fDw7LE0lxIu6/PpLa6SVQLRNIN7g6Wdm39IQ9rkraL0qn1o9alE8hvr7v2bK1cqvMnM+CyNjHYTzF9yjpW6y99P6robqxzAw0L6Mscr2pjzo94FMUfZZyZ07vnNTSQpR96vvXx8RpP0vi7XnPIPL939usalooPJ5X2PzmFK1Q2qo2mNXBP+aauTWC06mKY/Gt7+mRi1s45cQwdBiPKhwghbyWxo/Yi7vM6PCYXod4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(346002)(366004)(376002)(39860400002)(396003)(451199015)(36756003)(31686004)(38100700002)(5660300002)(86362001)(31696002)(8936002)(2906002)(4326008)(41300700001)(83380400001)(478600001)(66556008)(54906003)(6486002)(66476007)(6916009)(2616005)(316002)(66946007)(8676002)(186003)(26005)(6512007)(6506007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?qMaylrkrnRHW+OlX6htsBRlyhz9M?= =?utf-8?q?4zHYfmVuIjyS5lft0tZTMru/rK3tnnxPrQr+PW9HYC+rGDRR/o95nA1Znhe32F5D0?= =?utf-8?q?IBWEyhU9JMhETWmejbOKNPr5JoBasIxxPB4jvFxIvzBWF9aIuYYbCaJSbdvO7ddnu?= =?utf-8?q?l+cqGpI3xjaLhKxW/AnxXwX+FSjDH8K0VxX4Q006Pbar1uYWarAgxu5P+kGCLyeSj?= =?utf-8?q?OtNG6YGytcxPrJSzs6BWnZlX+DpsB/lq55XJWfqdzjj4n/hEDFGP2MFf02j4jAzyZ?= =?utf-8?q?xvpPW+rJfQn5T9jbBJVMtpeHuOwLI5leggfXngyzWBOCaP7G27zYqlIRy/yUfa9tY?= =?utf-8?q?wPDpAUbqINtBeSpxbtFw6bAqjgyTCKdAJly4/Vr4uD4K7XySEfOrpO5OuwHOeAZ3G?= =?utf-8?q?PNqXulpTeELySv/jVm5PVRm+ud/ocQg36uB87/p8UWD35xWtZHWpqp2lOmnxOquCq?= =?utf-8?q?Jdm2Yqj2W5GSVZUSYk7zKUEOaVdb/Rz4OKytc6PW6Q6Er4HwcAFDRbEJQiSLrkGnl?= =?utf-8?q?W31r8/vWQWexZGvxafpaslmC+8Njlp8RZsw+6Rv0deC0xnRCXnYqUgpddUIsvXqCr?= =?utf-8?q?jfI6cIUG45GTy5FIroIqbWPfloADqzVACl7r9tg+5Zau6u2EigPfqyZFbeWH8GJN7?= =?utf-8?q?u0sgtRW8d4Ry4CQTWasqxo9BHI5eJYP6fmCNXRqOka12VJC1LXMXZ58R/ck44O3Ya?= =?utf-8?q?SYinoWZi6r/5cRT77uShRMbEBwLw8AdcWktDecvQQhW4xmk9YWm2iETGn2EkVvE/e?= =?utf-8?q?Ni3Cqg6X/Bm7AK0fq8liG/xbJJ0G6fbGK3Jq3ZO9oR4dZeyZglLQFOyXFNgULDzG7?= =?utf-8?q?cW+K+oB7jyEGyp/7iU1EYWpXngCuXhlxzIK/ZdAmZqagV+4+/lYIEbNtDMIuMWiGv?= =?utf-8?q?jBfwequLAR/7b1BWfN/7x/LY9AM2y6LFbL+UjTacAd8MzPWj/6OgeOHNJpNtRrOd+?= =?utf-8?q?Y3IO2UC6+JDZUaASpdpLz5hFN1gEaUjY5rU9FA8NvEEgD+El4UIW5kRqx+4VGSXMj?= =?utf-8?q?8xDvS/nERa3U6nZGF0u1gXDua/div9wuMOjzDl3y/SbiyKF+dUDAKbmLq14VqUrUh?= =?utf-8?q?xHdL/aHsY5nKDc14pAT1WBeQiwqH5dNGb7DtGo8t9TkLVoQKmSX6DYLHv+MqlJeWd?= =?utf-8?q?mosYaHbuHACpATpQzjnKZZT+PgqmdPEA0vKdNhhUS6T8rxayx7VJxhueNhhrzuZ29?= =?utf-8?q?1sTDwvJBKCvFNmvM7u1EOspenO/0kGOGNgp6R7OFSjGbDfzAlC/VPI3Qg/BtPA8wH?= =?utf-8?q?g4A4H3HHef/yOZkhNZOR+ZM9qKEG9RPIY7VkHvZBrHph6kn7M3vYOHrm0O94nSoaH?= =?utf-8?q?0hkzfbCfym5cQA7Oz5BrbupbkHH+aR6RP7NeAuVSouEj9D8btxR6s2LewHYBoUdKl?= =?utf-8?q?3e+buXegdX7YZRtx2TAgw44xaKDUWPa2UhrG6hyOQgQLSV+ZxgELhAsuGWal2Ezce?= =?utf-8?q?u3SJnYEbTBSrfKbSX2YpgwQbxCs0ojYhsfjQHiE3ev+HIED7pVy8DzFnFf+oimaE4?= =?utf-8?q?pqwCueWK8RmP?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ead8991-e37a-43c5-c6fe-08dad7919dcc X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2022 13:56:04.5269 (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: TyiK2i1GuH3pNeD1f0Ma6VfNt/q+GKnxC3L2g+fUXAY1NZQ57ITGvmvqGF4W2kEjOxFJO0+lYY57HNo6Wo039Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8670 First of all using is_idle_domain() on the subject domain in the body of for_each_domain() is pointless. Replace that conditional by one checking that a domain actually has IOMMU support enabled for it, and that we're actually on a VT-d system (both are largely cosmetic / documentary with how things work elsewhere, but still). Reported-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Jason Andryuk Reviewed-by: Andrew Cooper --- a/xen/arch/x86/tboot.c +++ b/xen/arch/x86/tboot.c @@ -31,6 +31,8 @@ static vmac_t frametable_mac; /* MAC for static uint64_t __initdata txt_heap_base, __initdata txt_heap_size; static uint64_t __initdata sinit_base, __initdata sinit_size; +static bool __ro_after_init is_vtd; + /* * TXT configuration registers (offsets from TXT_{PUB, PRIV}_CONFIG_REGS_BASE) */ @@ -201,7 +203,7 @@ static void tboot_gen_domain_integrity(c } spin_unlock(&d->page_alloc_lock); - if ( !is_idle_domain(d) ) + if ( is_iommu_enabled(d) && is_vtd ) { const struct domain_iommu *dio = dom_iommu(d); @@ -444,6 +446,8 @@ int __init cf_check tboot_parse_dmar_tab if ( txt_heap_base == 0 ) return 1; + is_vtd = true; + /* walk heap to SinitMleData */ pa = txt_heap_base; /* skip BiosData */