From nobody Thu Sep 24 18:57:36 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012038.outbound.protection.outlook.com [52.101.43.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C09923BD1B; Wed, 16 Sep 2026 11:53:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789559619; cv=fail; b=NnSS/5Pfbe/uONpwteUGMjUxlqzZSqCLE49+ECSFUUFoXYKsSmQtG1TzGTKbLj85pQeQArvq6SwCCpn2WJ+BfjVLjWh8yxK6gmLfcitFWMkB53a4b/sah+ZHEGvIJXa4oEfDTBY1uop7cSHVVrZczbfIW8E3EaScPqtrgH9mTdA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789559619; c=relaxed/simple; bh=QFmYmpaqQ/mz3veR2cECFGzP8rzAaLXXJFyquET1DPQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=l8+D1uIy7p0i1Rp9gdXH+sPBy3xLKW9sRnQgjZ+FPpYPUQqVlfESI7wU+G3g9mwQTHYTc/qOUGurkOWNx7wQegvhwsAewW1RQCMVVJxG2Hl546N+Og6/NNDrwDSfVdq9sATBe0Ket5TrAVWqicRXjtf86upPo6ffQkq0vx3VooM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=N0hikTVZ; arc=fail smtp.client-ip=52.101.43.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="N0hikTVZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DYBwkp72ulVUxF0lRt6GqSmvMXRJuEgchxPBZV/zlmhjFqryWjHMaYuPxYbaNEDnO4QJks2xk+oc9A9ndQr7YmFhO+NF055lbq0zdSj7NpghIoxft6CM/AwqJ7STor8ECQhDY863hoe56iY7QuqZIM97lBhkNg9SKq29wTy0wiw9s++TkF7B6zFbMvVBVvAj/NHVbEdLlWLM/j+NR67vn8g1Sf8o1NlAPy0TEbNNyCy1Scgj8r+Hx+P3GGavevg7NfeXesR9NPGOyW00QWVftoO1tpwsv1sSCEh+B2fV6elySji0oGLYe95aAyYxHDKAy98SCchlKTkzpkdaqKFjRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=SY2PXIfdH4gQPL2ZLaN4rYd0hBg60SV0RgUb/GbX15c=; b=ULct9KQj2LIhQ/B/hbSpdfU0x2GV/D2bWqLj/X1urkO5IZ0QSHU71OHI17z+INNJnIJzalFrcBRmNvkI7J2m8/GrbMcJbOGYdS5XqTEaDe7YB+O8bx/yGrGa6r+QfHZ9ZqVLOYQe6uxFVPIJJOGdeJODKbpCiEYmTQuh2qpVenYQ4dwIXHgF2O08hMAMEwzoPi2ZqHkDTq+pqTHCMrdXTz/Rh40AmQzwbMjU2ifmLIFtGmRI9Y/GuJEVSIfzmNeVnAKMaT3wKva1auS9TFNtbhGKSl76LJCT4cwmNI25BkNiMdgtbOSeJX3HJDfl46BTm/Jl0Ko7zFWyWEY4XohYUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SY2PXIfdH4gQPL2ZLaN4rYd0hBg60SV0RgUb/GbX15c=; b=N0hikTVZLLlKQRQ9LljQNzVBYbzKHH0cYxZSKI6Hs7pNoviNSEjKHhzWdLDlHjsbn73c0xoZU6VRevsCcGmPydi7mrdoPBzv5blnhya4oMO67gLF4YjYQYkks0qMDyMH3CTQuolNJzfUJ/MBaLhFG8bA5Ui6P5aQl5qA7zDvPmg= Received: from CH2PR02CA0009.namprd02.prod.outlook.com (2603:10b6:610:4e::19) by DS6PR12MB152050.namprd12.prod.outlook.com (2603:10b6:8:410::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Wed, 16 Sep 2026 11:53:13 +0000 Received: from CH2PEPF0000013B.namprd02.prod.outlook.com (2603:10b6:610:4e:cafe::6f) by CH2PR02CA0009.outlook.office365.com (2603:10b6:610:4e::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 11:53:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:53:13 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:52:49 -0500 From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 01/17] pci/dma/tsm: Call disable DMA bus hook on cleanup Date: Wed, 16 Sep 2026 21:51:41 +1000 Message-ID: <20260916115159.1938195-2-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|DS6PR12MB152050:EE_ X-MS-Office365-Filtering-Correlation-Id: c368b172-fea0-475e-27fd-08df13e91646 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|82310400026|36860700016|376014|7416014|32650700020|11063799006|56012099006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: lTbYfoL+zluMIQcZMX9c7spGZjQpXCynFv3y/cznROcYIxht8DJBw5ZLo8zGEnnTVHWw2qAb7J2BwF5bOjDhq2N7DkQjd+elST2JCWUXpyO/R7ixu/Y59GDjQCR/uX8ZJ+hoCcjGzuqzxqwPZXIA6Hk7NfEDjKLWbuLEDawfl+W/8sniBWPuDo0SLKRlToGBM4tAHn3wgj4XNq50zxnhK9OWU+/Uz7JOxe0eq8qmeAsPXaKRemotGofnQnu8ao7ULnXSqcvYntuzx9WaCWFn78Y/xe3xyWBxlXjnLOeKMRPYU8Awk5LhRYyxlO8X4icA6IA0TovktSJsx89DNS2jZ+rz2QQocNbqmXHIPUjolM7ehwfHWGGircyk9GCfbwD5P/dinhquBfDUpmQOaBvDs/hVTZdaGTRt4GjnIM16Z0Qh9iKRtXw83BfMmVUMpUWdhLJDb4aAgV/tvLtChQNrN/M3QS+2TyYtxV4Mr6aAhHGRBzZZ9WhPAwr2MBDMzjUvo/C9cItn9SfcwirGV8FnAJQ8SrGXwK/w3dUgRGcXKqar2Hycqq4M/oDb1C4fmeZKQ/PM0JxtOO3H6wDkXhq7aF/cV6gI7TNZEN09Ydt6mnEzfpGmAI96cLvtJ8/t5fmTuHmALW6bARpQlwaLinJNEk+/A9eLsr+jqbuksFvGyT8YqV17Z36rwxQPVGoerdCHYcA8GGykuJuX3HK9WyMQSg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(82310400026)(36860700016)(376014)(7416014)(32650700020)(11063799006)(56012099006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8Car1z4HpXq9pf9mgugQAiDX2M+RvASwLDL9yQIeM+kN/l86aDUJkLlLhXbA7h5FyKBkYdpkEvfnzFtAY1ypdABOLbjCcnRxFBKj2AqHYp3MJJkkxZp84M9m9JgKaBp3rXD4byWsdFprofXiibB3C/Aqe5xf/4+mDSyGncGAsfcoYA69DAfAmCeT0Weetem3fMELGDOK5EChaoFW5WWc17UwY4vkz4nFMdZngDqMXJiDZL4Jz7mkbzgsggHXldh7RY6AEc9zJSlma77wuBATEvSpwK5DjBoSX/o2xKHp1XmL2zF2qZ3AVtfjXHVaJg3js5x2DOxzUGU7365U9zN119sIeHjs9Wk0BELZkps29710E9Z5yecIj4dG6BrhgdrlFzWsRus8rYj7S96/IwFvQzh7ArrzAIHx3s8UCRtb/sMfMykBapwtCYQpoVQ3QXGs X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:53:13.1361 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c368b172-fea0-475e-27fd-08df13e91646 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS6PR12MB152050 Content-Type: text/plain; charset="utf-8" Since XXXX ("PCI, device core: Add private memory access for DEVICE_TRUST_T= CB") the TSM subsystem relies on the PCI subsystem to ask the TSM to enable DMA. That misses teardown path to disable DMA, add it now. Fixes: XXXX ("PCI, device core: Add private memory access for DEVICE_TRUST_= TCB") Signed-off-by: Alexey Kardashevskiy --- Squash into "PCI, device core: Add private memory access for DEVICE_TRUST_TCB"? --- drivers/pci/pci-driver.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index a036f3d7e6d5..633926b55da6 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -1739,6 +1739,9 @@ static void pci_dma_cleanup(struct device *dev) =20 if (!driver->driver_managed_dma) iommu_device_unuse_default_domain(dev); + + if (device_tcb_trusted(dev)) + pci_tsm_disable_dma(to_pci_dev(dev)); } =20 /* --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559701; cv=pass; d=zohomail.com; s=zohoarc; b=O7PU/MMqtYhiAM44kAmmUZg2Tl0k/dpDFE9WElaeOdO6shiFaUXqTCw8I2Gd94ZgBIODr1VhWFuLDPXZNC7qf0hqW1lawojOxNxuYjuNACuPGA1+o8r85YRl48aOutWL+HYvlzwDMM0zTUPyWsA2VrJC5WKyOgaZvYEjHz/f2YA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559701; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xdXMPNC37iRVDCMXKNEKZ2ifmpdSeHtP/V7TZt/SDC8=; b=SqJraBqqzp2SGf0W0AaX9sah+tlPkbAAhgQMTpGyJse2nuoP48C/kxs/0UwwiuI0UyAMqNYSSxp96xLzRwoFIbYxEuUqqbgtaboPcievxu+vv0p3qjSvA/IQq+V9Wb94Y8exLqTrVcMs5YL7rny2bhNd6VRIPmqGWl2vEY3vx1Q= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559701246604.1661653446746; Wed, 16 Sep 2026 04:55:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422835.1648190 (Exim 4.92) (envelope-from ) id 1x6oDo-0004iK-0i; Wed, 16 Sep 2026 11:54:40 +0000 Received: by outflank-mailman (output) from mailman id 1422835.1648190; Wed, 16 Sep 2026 11:54:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oDn-0004hr-QB; Wed, 16 Sep 2026 11:54:39 +0000 Received: by outflank-mailman (input) for mailman id 1422835; Wed, 16 Sep 2026 11:54:03 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oDD-0003BS-H1 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:54:03 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oDC-00FQZN-U5 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:54:02 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa8344-8faa-0a2a0a5109dd-0a2a45088c30-44 for ; Wed, 16 Sep 2026 13:54:02 +0200 Received: from [40.107.200.25] (helo=CH5PR02CU005.outbound.protection.outlook.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa8357-f659-0a2a45080019-286bc8197473-3 for ; Wed, 16 Sep 2026 13:54:02 +0200 Received: from CH2PR14CA0052.namprd14.prod.outlook.com (2603:10b6:610:56::32) by CY5PR12MB6250.namprd12.prod.outlook.com (2603:10b6:930:22::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 11:53:49 +0000 Received: from CH2PEPF00000142.namprd02.prod.outlook.com (2603:10b6:610:56:cafe::45) by CH2PR14CA0052.outlook.office365.com (2603:10b6:610:56::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 11:53:49 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by CH2PEPF00000142.mail.protection.outlook.com (10.167.244.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:53:49 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:53:26 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VTzZkWUgFSGTYEdYEZpPOMaVLEQhmQGq7QBUMCbWzotJQ27rAtQmjDP+9McdJ3+Qz/sUzSQQjoEminnXngDsnhUJLlmos9CTi9EOAycBw3LsUI+zk3luYdwCLlE+Oe7i+JYlp2ZQ14EDq4im4zIzlwZSdkGOSWlwn2CLRDnBfcKqUrE85+Vpfz/lUKwLFpYRmN3IsBcsTUPU7RDHs26AlbBReDMo7zlSilA6XdxPsEmUjOsJ9BjIhgNMQ7YcmrlnoW31AYHYVzKdK2MnDutinTdg19jp+cYj5iqut87RGiOdLEHW98ZsbKc93pfB3xGks/qX24tShdXW/8QwrsEmcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=xdXMPNC37iRVDCMXKNEKZ2ifmpdSeHtP/V7TZt/SDC8=; b=Fe+LOHyb0f3R9Z0gTpvD88qAkXG6x4cnFREewCHQdG4dkhPWd65F27J0tmrFme+Pj8b7EvY9Ah38aOWwEVXKzeI7NsVBKxTw+RqBShVu20bRGfJLBgcMUI6CJIzS7pfFAX19ogoeC4kRD8ddrwPJ0gxbMEQBE1XJlIOAqIiRrZf92UAd8DVrGVBwVDbmzDPd1F6jBZSUc1JC2ZXBtsRM5n7mmDHgTE9TB5K3Ch17IfAYpmnPTUk20P50+CFRkOFzvR5PsJIF5KavfoU+KbFr/zuPtUs19Ot/k0oMD5Z5PTQbaHrjjM5qCOzl1L87SNMqYSplg1BH8YuVyrECFZm+MQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xdXMPNC37iRVDCMXKNEKZ2ifmpdSeHtP/V7TZt/SDC8=; b=fUWyDB4dKMWU3pNQM64UZ9R1E/1jXAdN/6P/dqK4FcokxpkI+zEkkScVU2SfrKYX32Vo9B8woMqS4wyNWcYEpzYehswUcnIGfjkhWsaszP7Jkdgt7lWY6ANDt4/u0I2m5bxDYCjb+gap9sRWg6r/Xii3Tt1llCKdN/HIt+bP8fs= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 02/17] pci/tsm: Fix stale comment about TDI report range start Date: Wed, 16 Sep 2026 21:51:42 +1000 Message-ID: <20260916115159.1938195-3-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF00000142:EE_|CY5PR12MB6250:EE_ X-MS-Office365-Filtering-Correlation-Id: 368ef6c3-44c2-4fa8-6d72-08df13e92c0e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|32650700020|36860700016|7416014|82310400026|376014|23010399003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ty7fn9JOkvoiU24GPVZ/rmNQytrpaC2dhfMBHPhdzS00TZxP9WBKw5etuOyR9/ZWu2XQfWBGWkSaF7tmlvVKeZVMvFiZkVZMV4lOH00MqJdO9voSL4Z68EVgz+FY7R2pGsVQXtFvURVAFu3q8u+dl2exxvwB4eVgYe7crcTdoV8lr4hd6eN6HnmO51qX7eyzMRPLXQXQNpURKRaHOF99KIKMRwPmtBUm8LcvkLDBJiroyx0MJkncpp/0my7FU0IeQifDlirZuH0gXAkKO+gAG4rN5DP0MqzLs0MQvLlj0h6ezg+H7sF2QWO/jlQe8YyxBU4kitrVIvjdpTkls/SMRn1Ct6sKSCcHdHNzUeaf4cJFSEHdTirh/hwtT3jZv83FslMpXDnVmgKLD42MZqWNV7/fhFliSMJmd/KwGx7MD/i5gAUminPfEZJpsqoA/LtMtA2aeOCPpy2vdix3tbhjTEnASLqkdwmlM1tE3izZ6lEYqRwHCMepvS355O5VwM5KrvZTyuWEWSkAxSwuk96DQY1xxl/Mztr7El8q3VdfsPesBTpZpg869xG0kx9Sb3vMBVcI64R0d6UN+AkUINSbNwiCwk1oRSqtT1yx4UK0CpSEK3b2ZSK1WkVzcVSFu+JFKuS9aivdEPiiJ4QjM1bBZ/Nimxhbpia/x+La9XIjb+wOKtwQzkEnCmwTnYNLIKN1LLzOs8Ia79FoXUsN8zAgpw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(32650700020)(36860700016)(7416014)(82310400026)(376014)(23010399003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1EwaPy9VnUgtfRgZAzstYDIfAgiTyXKXlbJfuTIyKOwSN5Prp96/PGgZjfYrQj9CaYl+G7vqsaWOQ7FjVnIRoOEruayIAheJjkTsvujYuDKm3S69YPRakGGFruhoAQfg0sSGIyUf3X4ekMEq/dKreWVi2JuGOz+xy4UzjtJYPwmKb4TdsKkd5b/9XT/YuYhcEbT5JWftmCA0MB/ESbaAT0fma4wtJw6R/G8hNQMqCdAbxjQIUDXCTbd/73hpaexsaV8I1m5M11Ady04jbTZNDw1S2tNDcqky+Ufo0UenqmrqC0cVkZaRmr3LOy4h4AIHj1e6qnbhY8WVC5YGb2ZgrAmw/V1aB93n1bLO4VB1r+zul35eBo4BtftZbYjuuVXsTS9AtyCrVvVX7Y9yJ8LxKnHqEtHB2RNplComEIpjTGDwUzE/bRbIoJZwe3qv6nwP X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:53:49.6782 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 368ef6c3-44c2-4fa8-6d72-08df13e92c0e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF00000142.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6250 X-purgate-ID: tlsNG-c1860d/1789559642-CEF5F87B-3733CAFF/0/0 X-purgate-type: clean X-purgate-size: 846 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559702044158500 Content-Type: text/plain; charset="utf-8" The PCIe spec r6 and later defines the MMIO range start in 4K units which was not the intention. The upcoming change makes it a byte address. The structure is already fixed to match the new definition but the comment is stale, fix it. Signed-off-by: Alexey Kardashevskiy --- drivers/pci/tsm/core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/pci/tsm/core.c b/drivers/pci/tsm/core.c index 9ac216ad896d..2a18be5be56e 100644 --- a/drivers/pci/tsm/core.c +++ b/drivers/pci/tsm/core.c @@ -623,7 +623,6 @@ EXPORT_SYMBOL_GPL(pci_tsm_mmio_teardown); #define PCI_TSM_DEVIF_REPORT_MMIO_ATTR_IS_UPDATABLE BIT(3) #define PCI_TSM_DEVIF_REPORT_MMIO_ATTR_RANGE_ID GENMASK(31, 16) =20 -/* An interface report 'pfn' is 4K in size */ struct pci_tsm_devif_mmio { __le64 phys; __le32 nr_pfns; --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559707; cv=pass; d=zohomail.com; s=zohoarc; b=T8A5gqTWtd8xPMu/JHwSRuKNn5P4llf/IWKjES+unacZ5UWToEiZAZ0+glrWtA+kR5qhJL5N+kBBNcVJGzilKuINQ8IPCA01rw9+T9Xo+HNPyKcxJk6XE1zGmHAYe2KxspZXXlHNi18RQAprrr6i9fYyZugrjWcALLyux6PpEXs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559707; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OKUdPqVU6vcP8IIVfw9k2l6nR9BJplx9o3NZa4hjOck=; b=glVpi8yiBbzIaq3iyz+GIy6ffNIwOTWe6XY83rJCzzvXZSOYw9/Xc0M5otvjeywxSpO0DXNEC6WKae2JX9MUv7b/N7u/1nWcbB8hfCW8y3rkLgGriXcFqju/H8gea59ZH3T6faf5wHXRFA5iz1VilRExUg7K/j+4jIhwDNfcWXE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559707805697.2497182576005; Wed, 16 Sep 2026 04:55:07 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422837.1648200 (Exim 4.92) (envelope-from ) id 1x6oDp-00050e-Dy; Wed, 16 Sep 2026 11:54:41 +0000 Received: by outflank-mailman (output) from mailman id 1422837.1648200; Wed, 16 Sep 2026 11:54:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oDp-0004zq-8A; Wed, 16 Sep 2026 11:54:41 +0000 Received: by outflank-mailman (input) for mailman id 1422837; Wed, 16 Sep 2026 11:54:39 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oDn-0004h9-H9 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:54:39 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oDm-00HBSF-U7 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:54:38 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa836c-e002-0a2a0a5209dd-0a2a4503b7a8-44 for ; Wed, 16 Sep 2026 13:54:38 +0200 Received: from [40.107.200.51] (helo=CH5PR02CU005.outbound.protection.outlook.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa837d-fae8-0a2a45030019-286bc833cfd4-3 for ; Wed, 16 Sep 2026 13:54:38 +0200 Received: from BN9PR03CA0556.namprd03.prod.outlook.com (2603:10b6:408:138::21) by CH3PR12MB9124.namprd12.prod.outlook.com (2603:10b6:610:1a7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Wed, 16 Sep 2026 11:54:31 +0000 Received: from BN1PEPF0001854C.namprd05.prod.outlook.com (2603:10b6:408:138:cafe::7b) by BN9PR03CA0556.outlook.office365.com (2603:10b6:408:138::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.9 via Frontend Transport; Wed, 16 Sep 2026 11:54:31 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF0001854C.mail.protection.outlook.com (10.167.248.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:54:31 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:54:07 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Urn84h68Kv1NiW1kUjFhGSLpejB7pKDouEqo54M/qmMxqqUURd6ehj7mM9xpJoyNrMOyUCwditYWutF0X2+l0E9N6rbyp7n7T93fYm75aTFSiMm3PWzBQ+EzDba/ohbFoxZMLDEtYQ1KMmI8f5qJucPcqUgzNSHQSRCwKOJghCsJdwF34jAnX0AJGV7mjpTDuVJ835sAoA+8mt2dLoBHWmWxVbsPI9P5Pn6LMSuK6og9lrcTYvcgozQynqSEb07n+m9GO1XMQ/tOeOWdpd9q73+IScNGeTdee02ynit+Phwjbohxr+Vsj9onyxl/yw6v5FMtv8Fn2PQ7QgGYuWBOaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=OKUdPqVU6vcP8IIVfw9k2l6nR9BJplx9o3NZa4hjOck=; b=EDrGQU+zjyMIoBNBObg/r6jTe0H5NY8XWxArKdQBcDcekZYrh0UbRIh0tmCOcCfHp+dP6Wztd+oV40oofWIb4PFbFrxaTyiu/fxvMKTsdJyfUDuQBzh63awmNCIlzw2kxvb5izGceKhpYEkaujCzyL/utidKOJh+2vZjiyRqmTUXA9/cQePrUksl8uf6C0grj3ZJTzNp5u8EZzpUEviQPAjjmdTPZeGYvt8v8f/WO3Xzv8VITj5VSvEuFuOEads2rBd6M5Dm/XYx0+tsXPMX9v/5O/KZVSEJUGfxZpb+NPctjB7Uw3AuYXTo9rForv4T9S6RWtJhg4NX8Ej5WJRPrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OKUdPqVU6vcP8IIVfw9k2l6nR9BJplx9o3NZa4hjOck=; b=H4qYp44qyY8gpvkWf1Ci8lBKgSKe4gGnaL0LZRKfWPHAKK1lwWWi+ubOgacGhxO5O1FzaozHGsrB/86eOm8Ue4BleHqQnDCWrO2eOb1cPtrNH5hsFjJTDNBzzppowIKl9d0/tzYyGSbtYSUiVlSk/3S/fYLmtLs6HF6Luzu27Rw= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 03/17] tsm/core: Store range_id in pci_tsm_mmio_entry Date: Wed, 16 Sep 2026 21:51:43 +1000 Message-ID: <20260916115159.1938195-4-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0001854C:EE_|CH3PR12MB9124:EE_ X-MS-Office365-Filtering-Correlation-Id: d59d45d3-0f08-439b-d6d0-08df13e944b8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|23010399003|32650700020|7416014|376014|1800799024|82310400026|56012099006|10067099003|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: rI3FUyxtUsFrikLPRCWOe3jkIJpu8Ayez//FbHvA7EZPaqMJ28NzEM4VhJ4uFsUfHOrPAJb/7UHnkmYOiZsZByETBO7LqwDolMkGk+NuIkrgD4qgEv4RzEDqahiEUr6RmoqLOB4/nnuarOms1DULPJLjrKyDmeOUAEEoyYHWB5A273Gc3ieXPZf/pG8FYsRMtuGwuUM0kd2jypZAIucOFIPlseEW6Tidon+1+G+qvbnitCdEbepShhBJZCMdJvcbi2vS4qERdzgmPEUsJ3ylIy1Ob5JKPPqLHOQxCE0Qe2/CCLBuIYsjqzVwfGEXXNSuZ2BN207i2oGm20r9eqcOgEt3kaOz34+dHkchUmel6U3bjs2AQ+EvxIjcvZ+I/wsFwRJXZHaO71FmXafnt71PBAcdJEK6qVYfgqy2v5S3Uj+vyR+1IKmg6Rfr4z3YMDSg+ptuH+K9bmzONBteIzA0bli1GHUAA4BrfnH2iDkYHuBxYRfVK9Xxfa3cxTwYqdojQDJQ4wX9c/N0NYNBfz8h9ph3umCHa0RhWXWwSESKEBn+FZY+jNWIHHce+uQnoGNf7r5KtJkpLdjT8wtA4XS8UGoRQZRBGqToFDemJKAzlXlGC45dacLPHVyAKBXcIcQK1KSkr1cjUWaUbUoGTGzCb1wvFKZUGANi+ZFG81a1RXGumrPU+cxRi4EFst/iIx9UAMPQNzjE4joretksZWLINw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(23010399003)(32650700020)(7416014)(376014)(1800799024)(82310400026)(56012099006)(10067099003)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3PXzb1uIYISSNMY+R0m2gI1Golc9yZxyHNjo9mqcVW1iX+W8QOAgaw0Jx0+Ta1VKAjQN4QvuQJSWrTEiqdmnJWGdsiX9SXLTV7KsO1jkKL+RbUtl3rM6lse+vVwlHmd+IzaKPKUqMnAJwfSIsMv+aCwgqXOJHqF/H7s5tLLKw2PLKZUtD1ZyNYccxLICbLJnupx7vGu1T6MszIipxPfFngv9Ym+30x0Q2ajKbHjL0uPDpj7E5wgANp2xo3ZVGlO1/icucw65fAYiw3XHyAOEuraigI/3+qS1j8myjEMuJ4CLxEAyULrUad8gSQ6vE9GGBcTDKo8iENf0+SwfAW4PoJeJq0iP70PPpGHtspLqITaJWMzTVVn3E+S6NBglTQqsv+5r2fAzrn5fFPMMl+5p05yA4VJJHiI+sj+qmhIWaBwI9YGSh9HQT9Re3VgfsDTs X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:54:31.0614 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d59d45d3-0f08-439b-d6d0-08df13e944b8 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0001854C.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9124 X-purgate-ID: tlsNG-33051d/1789559678-77AC44E9-46B275BD/0/0 X-purgate-type: clean X-purgate-size: 1753 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559710025158500 Content-Type: text/plain; charset="utf-8" The pci_tsm_mmio struct represent a parsed TDI report which platform TSM driver will apply at the TDI accept step. On top of what the existing structure stores already, the AMD TSM driver is going to need a range ID for the PSP communication. Instead of calculating it in the platform TSM driver, just pass it along. While at this, set the flag as resource_contains() checks for the type when pci_tsm_mmio_setup() inserts the range. Signed-off-by: Alexey Kardashevskiy --- Not quite sure if IORESOURCE_MEM deserves a separate fix; also if it is just me who hit this. --- include/linux/pci-tsm.h | 2 ++ drivers/pci/tsm/core.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/include/linux/pci-tsm.h b/include/linux/pci-tsm.h index 6d5fadd79360..9b34304d9a1f 100644 --- a/include/linux/pci-tsm.h +++ b/include/linux/pci-tsm.h @@ -161,10 +161,12 @@ struct pci_tsm_pf0 { * @res: MMIO address range (typically Guest Physical Address, GPA) * @tsm_offset: Host Physical Address, HPA obfuscation offset added by the= TSM. * Translates report addresses to GPA. + * @range_id: PCI BAR index for this range */ struct pci_tsm_mmio_entry { struct resource res; u64 tsm_offset; + unsigned char range_id; }; =20 struct pci_tsm_mmio { diff --git a/drivers/pci/tsm/core.c b/drivers/pci/tsm/core.c index 2a18be5be56e..a197d56edbfb 100644 --- a/drivers/pci/tsm/core.c +++ b/drivers/pci/tsm/core.c @@ -746,6 +746,8 @@ struct pci_tsm_mmio *pci_tsm_mmio_alloc(struct pci_dev = *pdev) =20 entry->res.start =3D range.start; entry->res.end =3D range.end; + entry->res.flags =3D IORESOURCE_MEM; + entry->range_id =3D bar; entry->tsm_offset =3D tsm_offset; mmio->nr++; } --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559743; cv=pass; d=zohomail.com; s=zohoarc; b=kORjl8FijPSj3t17Hnz6O+8rqJTk/T8dObaXmwtWVxoBN3EK+7GEQl3n31EcjDaEH/IcTTK5rqy/uY6yAK2hji1c8s2P3ofr3A6hYvs4z84ufCHW+sdtVTczsGd0eAB+2RNnW5aCwKoQZDjISprbYw/V0i4Hk61y/3gCX8/59MQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559743; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1fOSelVshB8tt+z9i3a63f+uWxxjJMxzG7NNd33A9O0=; b=RtVQ3E6dkeQ4+eRV26o/XZY9XKkzz763b1HQpsVdq1XrZi4znc7ovoAHk7dgb3leDjFrV1iGFtRRoG0aJVva0MJXtB3Ed/k0if0/IVfZS1yknJ21zInA/Xto2vECZIlp5dr1IEBsQPQP8SodBTE99+uGeVu0WL1Zvz2yvqjs62A= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559743455489.51423864293827; Wed, 16 Sep 2026 04:55:43 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422880.1648208 (Exim 4.92) (envelope-from ) id 1x6oEd-0007Sm-L2; Wed, 16 Sep 2026 11:55:31 +0000 Received: by outflank-mailman (output) from mailman id 1422880.1648208; Wed, 16 Sep 2026 11:55:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oEd-0007SC-Ht; Wed, 16 Sep 2026 11:55:31 +0000 Received: by outflank-mailman (input) for mailman id 1422880; Wed, 16 Sep 2026 11:55:30 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oEc-0007RU-IE for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:55:30 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oEb-002Sxm-Ut for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:55:29 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa83aa-8faa-0a2a0a5109dd-0a2a45078760-42 for ; Wed, 16 Sep 2026 13:55:29 +0200 Received: from [40.107.209.43] (helo=PH8PR06CU001.outbound.protection.outlook.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa83af-b4ea-0a2a45070019-286bd12bd262-3 for ; Wed, 16 Sep 2026 13:55:29 +0200 Received: from BN0PR04CA0192.namprd04.prod.outlook.com (2603:10b6:408:e9::17) by CY8PR12MB7267.namprd12.prod.outlook.com (2603:10b6:930:55::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Wed, 16 Sep 2026 11:55:12 +0000 Received: from BN1PEPF00018545.namprd05.prod.outlook.com (2603:10b6:408:e9:cafe::a) by BN0PR04CA0192.outlook.office365.com (2603:10b6:408:e9::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 11:55:12 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF00018545.mail.protection.outlook.com (10.167.248.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:55:12 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:54:44 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TZy2ZJrkMF7OCH9yN7sKyjTdWF7pgDVN6EGs0NLiBABwnnfINtahWOBYqwOz/NWr6N0AN5xk3KZ9gnYsR5DRJMFpXYxh6z5BOA4SqDov1+Py1rv1VdX8JfLWi2Iu9VC//4ZTsve+l1KibkrziEneP494mzlK+fKQ8Y6ZYsA72HeYMG2Hr2hrH/eH1tEk+QrUFUMbjHI1RdRPodHPy4kbR8OzqIx9MnVk7cuU+a0TdPj82AuZaqRcYaxYTHwARqMM06dsFTyWbujX389/moTRtNEA9l6ZTCBwS/3FOhSuXIjxLzfOGe+Ae7jc9Z5xx92b3zLyVpM45P9ZGWWrKZixBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=1fOSelVshB8tt+z9i3a63f+uWxxjJMxzG7NNd33A9O0=; b=jvahsYYrSSADIREzYZklS3cfIwMu0Zmjl3U5BvdwOD0bHjS79vNZLV1090cMPL6Uddm1Hw+ha8DsRIl6P3D7x0Ofg7n5e0eXwx40OjAREYnsDswkBOv39tT7q/bKNNpUmqXWpuNLksT0urT9O7eswM+0t9pB45isrHcK6lFqM8UdcQiBDw4Vb33gF6dsB3eyhqYeP32eJFGEnfmG5DILEG7wekx+bPb9r8qXvsuX1N7LC/toA2ovW1QUEOVq6z514RTOhjhfZBxnBBRn+Dlr186XJ+X6ysknfcEZXH08zx1mABhTDn64ZziAWAzDtRO8T9+PFyMF6nB9sRZuzltbiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1fOSelVshB8tt+z9i3a63f+uWxxjJMxzG7NNd33A9O0=; b=hJHVgTgw40xSH04nc9KEY2kTfcBikFvdZzQOK6y8fFdlPWQ206tziMwKbuHLq2YsQdsWnXpxBJBN+nC+uIlM7TQItN4B4LBXEVkNpnzIbo0qAVLlJlMgBl/jaNSuWF8TLglwQGLQXYoBSkSvj44AiMmqUoZVh4d3hV9YFqdWZsw= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 04/17] crypto/ccp/tsm: Use TSM API for DOE Date: Wed, 16 Sep 2026 21:51:44 +1000 Message-ID: <20260916115159.1938195-5-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00018545:EE_|CY8PR12MB7267:EE_ X-MS-Office365-Filtering-Correlation-Id: 95b0368a-0e2f-42c3-de47-08df13e95d65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|32650700020|1800799024|23010399003|7416014|376014|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: 78xBYQC3+wj95ztS+jhBh7cicxBkBZUOOlFcfH+bxAVFisXGI8GTXus06sBoYkM4BHUkb5zK5O7yhQwpaF6Ip7ekJl/G+pCPCtnHlkIbjjDv8+KUNHhK+PJ5RhP6SlzTgoe81C/Eh+DyMDQXye78SzFJwQW40rgBDQmTb9VchioXMTf4z/5CzwrtVTOPqbyMg+Y8jjHpiDtfFf8zitapJgCESsXZOSM9HNHyJ0Um1NQ7D9s0uHUfcT/dzxDylcymM2S+Ld5yStPeE7mCxLl6qhrLFr3BSHwHwIQKghVjXLTcDnqt3GYaRiw1yz3V3OyeUjtuGPCVf3AbPcfXsEjBmGX3h2tdEuTQRVG2yu5p2hVO7DHZiUoLYTEA8rUsbspBT4rewvZj80kJwOFeoOC9mrD53/WOfp4jUrKfPm1SisbB+kyVpNsgZZv5etsg5Ftvdv2z1q+jSldsTRs0LfdHF3TNYwTFEs1O7ZDtHQkyvUMGi8Wd0Q4cAhiexEAvh9HeKXdpy7ly9noT4dc7jyjth76Lc412wIb3GxzcBx4uGvx9TbHy30dbUYFWfGVgiRyJ4kKr6lWWtTrwgeUS8GP8q2WbaMspMBnT3PljHdlQYUHCU206jA3P1Ax0KDSFRZmCQHobtyHO4o9tJVYCppnHdmpteVaf6qX9JvzuwR/35nR2qu87SdsvzIJ/RRzcLYid X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(32650700020)(1800799024)(23010399003)(7416014)(376014)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2+d9WKfuRzwiWgMdluOVo4qJNhnH2FvmuZhqqjP8Ga5RudmSdxm4o30kD3JGM+JEJhea7Mw6INW7XT3nm6ypzdPviJMk9OK4Pvzn2FWUxcA7Vdl/e56ub2ci729tDDVfvh9CVw61K6ffH4bM+JOXA9hNl5odzX2HLX/1echQ9gdSp7MdJwUJI64mKFNnvbf9aUbAqNw4+4SJCg+XD9XffbZf6fjl0LBtuDu0HjfarKrIabaGlv54VhQ3oyYEtE9psLNTPckbXz1N2avdxAcXqsvWJ2kLmfkkwZ5KVqB55EFLafOAfCbw5IMEhQaZWZfVjmI54+4RWFQcol/rYF1TFVzsYPTn+eBGFcEeCuS6BT7+MsDtPowlpnYvJ/R4X0x3YM5wuUYpDWv4dKXLhb6UuiqPb5UM6Mz5WR/m9mvvSwqSgI6A6Nq+5hSnCXyY+hAU X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:55:12.4634 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 95b0368a-0e2f-42c3-de47-08df13e95d65 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00018545.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7267 X-purgate-ID: tlsNG-ef75cf/1789559729-A70DDAE4-994594FC/0/0 X-purgate-type: clean X-purgate-size: 994 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559744362158500 Content-Type: text/plain; charset="utf-8" Compared to the currently used pci_doe(), the pci_tsm_doe_transfer() helper performs a few more sanity checks, use that helper now. Signed-off-by: Alexey Kardashevskiy --- drivers/crypto/ccp/sev-dev-tsm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/ccp/sev-dev-tsm.c b/drivers/crypto/ccp/sev-dev-= tsm.c index 46f2539d2d5a..6e704ad239af 100644 --- a/drivers/crypto/ccp/sev-dev-tsm.c +++ b/drivers/crypto/ccp/sev-dev-tsm.c @@ -40,8 +40,9 @@ static int sev_tio_spdm_cmd(struct tio_dsm *dsm, int ret) =20 /* ret > 0 means "SPDM requested" */ while (ret =3D=3D PCI_DOE_FEATURE_CMA || ret =3D=3D PCI_DOE_FEATURE_SSESS= ION) { - ret =3D pci_doe(dsm->tsm.doe_mb, PCI_VENDOR_ID_PCI_SIG, ret, - spdm->req, spdm->req_len, spdm->rsp, spdm->rsp_len); + ret =3D pci_tsm_doe_transfer(dsm->tsm.base_tsm.pdev, ret, + spdm->req, spdm->req_len, + spdm->rsp, spdm->rsp_len); if (ret < 0) break; =20 --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010034.outbound.protection.outlook.com [40.93.198.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5568C4A261D; Wed, 16 Sep 2026 11:55:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789559765; cv=fail; b=dsP8RFNc6THZasjlcdbhLVuQKnBMHANBeHQ9fkQfmw5nXDLrA8hF3E7HO3VRaR7sr22CjDfjMJ7woH961qSCUYPKKrh1QMlKfF/3W9Z3xEyRDW/bra2s1iWlry/d5FUHJfuPlrNtA4Fx1WfYIJUXwzWDRGFEo4k2/fIv2jcjpgU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789559765; c=relaxed/simple; bh=Y8k2hD2CaFDMpfQp0ruLclQsVGwqKzI7Zg4fgriDaLQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=umkp8QbS/Gqzeoc6VsSB7au9HoA9HF9Gtl17fG0mvHMMyba2nQs1ka8oJ/8BKiZ9WMT/4AwpKDRN4LWbviTmSSjA00vId9y3CrfjAkFrys+7Wy4jMNxYhukola/0TlSKkp6DmdZZOhvSGsUi1U8loqVDgueYbKfc0Wb3vWYASXQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=msinSkf7; arc=fail smtp.client-ip=40.93.198.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="msinSkf7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LQfhMPYkhD6AnR3K8tdXf9QINnpy/KelrwnnDKg8EXRBdKD5of7YfSCTWdYSnWOsr0I1VYtFD35pu4D2udoh2lwT7n+aWyHtcfLM8eiK+6MMLJnbiGXsAZ7g7/b0RZhuEjRnuK9qZFWawxSaB5ABeeYkymtRbvub0kuSGYcZTZgc5f3w7ZudNJye3VGGqZA9mRWofXcfvs3d4xoGVYv2yTkAKTz1JQV9yJsp9oX3ehDxru2HNYJAxnvuUe0rYlpjD87snl2N5POoCnMxVWdVdvi7fUSG3k9jm9EzBv/bfLH2Ck+YIwo5A3A52Y2CtCPdKsvHIjB8rUBJ7Bw4x84O/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=v0t8hG0A53D6hUuYqrsRHML1F/umVz5zdX/nWs1UwOo=; b=EzdtJjB28ig+7GsTxViWodfdnFK6WufDnsBFEiO1UwZIo17Tcz25r3ejAPYwQJydY57Nl1h9wYB4IiARz1qyJs6NuD1klpbFoeDR6qXIke2xYhkWTyHALBr9cRTlrCBYbsI2lHbqgWF4N1b3eJuz/4sPgOqFRtYUUoa/of0m3KFZOqnWcohj1slFfaYBXPk8vLMsuhaUmvIAEmUZ/q6QU8sMW7QOnJdvFbm/nywajodTdM7mTFc49uPK0VyZqNanscCphpSWAE9S7XW7dsVbq/w1PnSnOSNgjq4/1cTW9hh3tdO7CQepZlV1RLYebeXM44aOtDLRC09UVng/PrzDQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v0t8hG0A53D6hUuYqrsRHML1F/umVz5zdX/nWs1UwOo=; b=msinSkf7Cpw75oiMTS2aiOWLwlb2KTeD6N02xI3NUB3lkqrXiCYf5cqgrZhvjcor9u0jz7IU2WTVgRWhwjRHkYRzThUKIqa2E80Ewfzu+4aQDo+fC6yLyJjOVWT/8zBaB8ULBRJoVWrIKVs7xr2fHRlUDzE85kFEG7NdNyGUS7o= Received: from IA1P220CA0022.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:464::11) by PH8PR12MB7027.namprd12.prod.outlook.com (2603:10b6:510:1be::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.10; Wed, 16 Sep 2026 11:55:44 +0000 Received: from BN1PEPF0001854A.namprd05.prod.outlook.com (2603:10b6:208:464:cafe::29) by IA1P220CA0022.outlook.office365.com (2603:10b6:208:464::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 11:55:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF0001854A.mail.protection.outlook.com (10.167.248.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:55:44 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:55:20 -0500 From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 05/17] tsm-core: Register nevertheless Date: Wed, 16 Sep 2026 21:51:45 +1000 Message-ID: <20260916115159.1938195-6-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0001854A:EE_|PH8PR12MB7027:EE_ X-MS-Office365-Filtering-Correlation-Id: f0628022-b809-4ddf-e51b-08df13e9703a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|36860700016|376014|32650700020|7416014|82310400026|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 7y+YJ5Z+OyMGOf2iurea6gWtIJXfcQNlJ0b9e0e2ih6oXqh9RVnwVlOKmPJLGMLMS6FZcGH4V6tgofrJMpnmvNmT3QePntJclBhTe4VKupQBAuiwbR9H79UATphkzqpFzkWlblZDDX9yazeeCUCNS5MpFkOetKOx02UbALu3b9eO5owPfy4OLOxFlFqV/o3vkI+bDZ8K7SDC05IwrAtkvFCQc5+HxLHYR/rpE+fg3arpfN+l8PnhQhB1b8uA/v7XsYGtzl1PKpYg2dVhJb1/nI5NGKqoKTMcPdCiu7vxkN84812ys0WVum587F9iiI05Eeu2pW/kTv0tkeZ0UFE1oS/gaDC+dxrummeYBtKnQon0zn+8VOMQSxAUrDajnM/ZA1b/+KaOCO1dlMauuUh3Om0Uz3TaS8Bjptwi0eOetEq8KZfzm32mXgwFsxjn/3x5v7nDS7Pwq6+ao5rhwXx9DgiIs+c04mY3+QYreV/B1j6V833CBCe9RDV3XCArkxJVka7fmYIE/hIftnRsQ19pRInVx/zRmYRnLEMVHorNHCIbSliJkLdTV6ioxSP1hU+nx4u2h7OEGQcbl7BYvtWHmTUpJydOz6Gr77oCqF4/sUyr/c5HERIvY/RPq1CQKe4suHTwchv99EAEG9HM54+eUwc5mstMh0e3kVG8B2bQxKjgvrTXE9XJjUQoVE1hbhdLidU1hUqNS/UcIjNiaYtHEg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(36860700016)(376014)(32650700020)(7416014)(82310400026)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7gfBfw3cwrGt/CVo84j1pCRkyKykdOlikms4I9xrPxtU7a2fA0pHJxQRzxTWM+6b8a0csSjVoT8mKS6Fh5S4p3/YacTgzDsLs29wKHI/s+zpKWUZ9S53dJFYpvBTT8StmCj/fj7zbUsH6N3b3bTHkmBQGnkn/4VaLDkXK1yxeo1yCrpPf2lmJw5/PllWcJJ1K/31arILyJ5yLqnpqII+99EtP/UBjAfpsm3m91xjaz98+aj2kvIGKlc37TDCjygAK12BGRa0qB1t6adk5ILZ5QyUIz9UON+TI362rNKmbMy3uhfCJSbGQeiK/Z6JtG/alh0EOQsQ1KHtKtn0fEg+o8r4RyTZSwI8qaVd+PCCgOLfSASKmbQA3ZdpRcL0VYNSVfc+YyIvcuBrdeIIq8yhycKS3ykvz2dFWZDSJIsRnWvuMUrENy0ph0XkYNEq2Oau X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:55:44.0564 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0628022-b809-4ddf-e51b-08df13e9703a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0001854A.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7027 Content-Type: text/plain; charset="utf-8" When this and platform TSM are built-in, there is no way to control the init order other than alphabetical. Force the class init when a TSM platform driver registers itself. Signed-off-by: Alexey Kardashevskiy --- The alternative is making it a subsys_init() and drop tsm_exit(). --- drivers/virt/coco/tsm-core.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/virt/coco/tsm-core.c b/drivers/virt/coco/tsm-core.c index 0843b77c6549..accee6a5cba8 100644 --- a/drivers/virt/coco/tsm-core.c +++ b/drivers/virt/coco/tsm-core.c @@ -51,6 +51,7 @@ static const struct attribute_group *tsm_pci_groups[] =3D= { }; =20 static void tsm_release(struct device *); +static bool tsm_class_registered; static const struct class tsm_class =3D { .name =3D "tsm", .dev_release =3D tsm_release, @@ -58,6 +59,14 @@ static const struct class tsm_class =3D { }; static DEFINE_IDA(tsm_ida); =20 +static int tsm_class_init(void) +{ + int ret =3D class_register(&tsm_class); + + tsm_class_registered =3D ret =3D=3D 0; + return ret; +} + static int match_id(struct device *dev, const void *data) { struct tsm_dev *tsm_dev =3D container_of(dev, struct tsm_dev, dev); @@ -82,6 +91,9 @@ static struct tsm_dev *alloc_tsm_dev(struct device *paren= t) =20 struct tsm_dev *tsm_dev __free(kfree) =3D kzalloc_obj(*tsm_dev); + + tsm_class_init(); + if (!tsm_dev) return ERR_PTR(-ENOMEM); =20 @@ -254,12 +266,14 @@ static void tsm_release(struct device *dev) =20 static int __init tsm_init(void) { - return class_register(&tsm_class); + return tsm_class_init(); } module_init(tsm_init) =20 static void __exit tsm_exit(void) { + if (!tsm_class_registered) + return; class_unregister(&tsm_class); xa_destroy(&tsm_ide_streams); } --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559803; cv=pass; d=zohomail.com; s=zohoarc; b=LAnZWgwiU46i2qzmdFPgaJ3yJySdRYy6JXstWv6dK+HPZ5zf/qWtj9/h4n/UZMbawaEcoZFuvC6WEr7VzW/ooWvR00NUZZwP8vGFTkBwc+SSRy7kglHCPWgLIb26BOC65ZiTe8Q3OviDvoE02t+2wTJ12nN13GBUUWN4f/3xu8A= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559803; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=aCqYaRgrO+KLB88pTWh3Gi1rxQIXg5tUAStrI07396M=; b=V18vpewRaldEI5BWDmfTfh8+gHs4C8gyO43pVOsufxNA4EGeFctSefSk7Ffr97rt6TqUApa1xqAjkCpYw+Q0Q2YWxVHPDK2MqdTXorAhW45ylOb67DMI/b4zcGPyinMdfXzJ5uV9wIg/hFIDGoXJkvSPCDw8Dv7TfbpKWtURC54= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559803593108.01379517076646; Wed, 16 Sep 2026 04:56:43 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422900.1648225 (Exim 4.92) (envelope-from ) id 1x6oFd-0000Qf-80; Wed, 16 Sep 2026 11:56:33 +0000 Received: by outflank-mailman (output) from mailman id 1422900.1648225; Wed, 16 Sep 2026 11:56:33 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oFd-0000QY-5J; Wed, 16 Sep 2026 11:56:33 +0000 Received: by outflank-mailman (input) for mailman id 1422900; Wed, 16 Sep 2026 11:56:31 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oFb-0000Ou-85 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:56:31 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oFa-004czc-Kw for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:56:30 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa83d3-2eae-0a2a0a5409dd-0a2a4505b916-48 for ; Wed, 16 Sep 2026 13:56:30 +0200 Received: from [40.93.195.44] (helo=SN4PR2101CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa83ec-4cb1-0a2a45050019-285dc32c2906-3 for ; Wed, 16 Sep 2026 13:56:30 +0200 Received: from BN9PR03CA0220.namprd03.prod.outlook.com (2603:10b6:408:f8::15) by BL3PR12MB6572.namprd12.prod.outlook.com (2603:10b6:208:38f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 11:56:20 +0000 Received: from BN1PEPF0001854C.namprd05.prod.outlook.com (2603:10b6:408:f8:cafe::45) by BN9PR03CA0220.outlook.office365.com (2603:10b6:408:f8::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.9 via Frontend Transport; Wed, 16 Sep 2026 11:56:20 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF0001854C.mail.protection.outlook.com (10.167.248.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:56:20 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:55:57 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eu1rDpedbFlRmafQwHimTL2zpjqI6OnKvSPg9Cgt3hYuHfkU5jan9BFL4f/5mMj3e1+zKYrTfV2MP3UYyf6FT72J9oWO8ZLYglPsg+r42fpOkuqYAuQKs0bDNH5ueBumA5sJTkCwigmxX94BtGcTbmFh/v2U7uK02QUn5Qr/Xk6dCy9B4c+JZMWlBHBOaD4kmqhOpfniyJyYR9lyv0iy+a4cod7BhPM3ump9xYae6KltF4oHYrEDlGNxvNvB0/ZnNrekrCm116hWpFDVNZKDa66HPK9eMGcisBx8qiyhZYUq4cUrAHFOHWLwPXNpGJbUvfgKL21bq6fMtjScR5JXdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=aCqYaRgrO+KLB88pTWh3Gi1rxQIXg5tUAStrI07396M=; b=UW1C31Q3ZMe5lzylroEIRDdlQWpL33tgWCFhwZ+FbScLUjm3lwEtx98dUT3nACRentiZuJKrlhHUAuor1f/Ugd6PQENRoMEQ2vF+e5LQjmYBYF/vjRmvqbYhCfzY5woJZWeS0gPa5f6Ft10ECJIzsRHn83wIcy+T7Y2m3JY7kUrykEoPqoeyw0wlJoMCSC47azoxh8Xu84CFqXUJOdj6N7KDzxLJcBC6AMb+39Vp9hCstbDyhREZt/H0+SdrIiC6YVRtdWfOQv4/4hrjFR9EhsqJfvZL5hIs0TbrANeqjvuzcRubAMK2g9CyeASLdJk4nEEfGzcmHUZwbMpVy+CC8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aCqYaRgrO+KLB88pTWh3Gi1rxQIXg5tUAStrI07396M=; b=byrgDqtZMilsSHENNMrnd3FZ6bJr030oMSRaGwqHUgCAurG+6q/KmZmZjvtsA/b4dD9IBYDwi66eYFBFv39PDsWU/ktcC5AIcn9r3O4VuQ8pGm/T6YmQ4AlOwiWlQ8s8plOk2r6Hc/OP5fpYe9ODvS+fi/e2DnX+ml01usyI/DM= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 06/17] x86/io/tsm: Allow mixed ioremap for shared+private BARs Date: Wed, 16 Sep 2026 21:51:46 +1000 Message-ID: <20260916115159.1938195-7-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0001854C:EE_|BL3PR12MB6572:EE_ X-MS-Office365-Filtering-Correlation-Id: 5fce5108-a749-4aae-aa96-08df13e98612 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|376014|32650700020|7416014|23010399003|82310400026|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 6BNZ2mu0j6dBjBOVar6cacjJVAtU+Ps0QvoB+UKPyfiXU0JmH6UJ3nG3n498jJiMjdGnOwpW7UBXYOtT44Poq/xKUtMHnotRE3puTY4NJ+O8CafJ7+HSBblgv3k/uwv9fPuz7JvZnsNR8qXlBPSgeQ9xzubjsJzvrQZiaNUnPlYQADHO3PjStIamA0JKZoREOrP+P+kpR2PXfo4VohaKyHZvIUsh65WgixlWDO+4e4peveBLQjvvGQN/O5wvQ6KN9oOsufipv1XvSNw7NgsTtpTDWZx2vah76oHoSXdsrZ54R0yPDPinCQ4BIxgqewcnMyN9HzxQtkLWzigy8nDKWSQAVP8O0HorWnb2STJwYEP/wFHlfZy2lBUirpszgx7yPUJoV+ba3iwvAQeaV9xoTgTWrvF9cnztobl5qtyTj+cabWqeXHL5uafvI7WbGGIPgg+xQ61T9id1rFDi20OVavrcHhNJUcuA4jlvLbjSaAdBVQTbhd5CCWKny28oephlhWhS8xvhRVCZj86K470/82FJihQatdvsP6zs/F+w6j71OIlOpKQqs8bFzvNVuQkLW3qD8zTcIojUo7Zd9mX0OFowXKBOV5m+vmuaNRyHzv6V1O0TkVAvA0TtGH40LvBtxw5mQJDejCz82szBtGtP+L+LQ0Ckq3+9An/Pq9HmwTS1qnfOHbdX42W9zuZAHTKx8uGTPJedP1hORo1+MFW+cQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(32650700020)(7416014)(23010399003)(82310400026)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5PrUQXodM/RpiDtbczG0PNLIWYOlbcHbPuTp2HvrSbS1YRU3oRAcjy53d6eJrT/DIqnNGJ6s7ddDqWIQ+0vGw0xO+7dhSgYuNvKdI7bkh8z5FNNNuoj60dyZ14zgPqaRReLGHqESwmB0AFK0325GqPKOjsGjjykn6ZiH6Onp2LeKKQcD8/IupxwkrskjpEFpGMFfvwDK/Nb5tp3Np8hbHe6YDFNDb3luVK+KBbpUPwvI1wafyYjlrws9LPZjYEopf8hNKZyntOR7AUqpGGDGrEgulfL9flLPiEHVtEmZlJAbsqYXdQi0Kd31InIG8AC5xbgmWRvs9osMt8JHGWo+sLi2IZqb9t+qBZMJgGfYaQZXrUR14BTe8N6NS8bbnxtZSSz9qgwMzR7ou45rKp4ej0QHU42hlrvYL5z/EuaBgM2DU6Dww07lxLiMN/yfePZ+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:56:20.7036 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5fce5108-a749-4aae-aa96-08df13e98612 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0001854C.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6572 X-purgate-ID: tlsNG-c201ff/1789559790-2551A2A1-4442270C/0/0 X-purgate-type: clean X-purgate-size: 6286 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559804632158500 Content-Type: text/plain; charset="utf-8" A TDISP device advertises private MMIO ranges via a TDI report. Upon transitioning to RUN, accesses to those must be made with the encrypted bit set in a PTE. A device can allow private access to a part of a BAR, for example, MSIX BAR (when MSIX config is not locked or MSIX is emulated by the HV). The existing __ioremap_caller() fails if not every single page has the same protection in PTE and this breaks device drivers (usually TDISP-unaware) calling pci_iomap() and such. Adjust __ioremap_caller() to map such MMIO BAR in chunks. Signed-off-by: Alexey Kardashevskiy --- include/linux/io.h | 8 +++ include/linux/ioport.h | 3 + arch/x86/mm/ioremap.c | 2 +- kernel/resource.c | 63 ++++++++++++++++++++ mm/ioremap.c | 2 +- 5 files changed, 76 insertions(+), 2 deletions(-) diff --git a/include/linux/io.h b/include/linux/io.h index 0642c7ee41db..9f5d5928f30c 100644 --- a/include/linux/io.h +++ b/include/linux/io.h @@ -27,6 +27,8 @@ void __iowrite64_copy(void __iomem *to, const void *from,= size_t count); #ifdef CONFIG_MMU int ioremap_page_range(unsigned long addr, unsigned long end, phys_addr_t phys_addr, pgprot_t prot); +int ioremap_map_page_range(unsigned long vaddr, phys_addr_t phys_addr, + unsigned long size, pgprot_t prot); int vmap_page_range(unsigned long addr, unsigned long end, phys_addr_t phys_addr, pgprot_t prot); #else @@ -35,6 +37,12 @@ static inline int ioremap_page_range(unsigned long addr,= unsigned long end, { return 0; } +static inline int ioremap_map_page_range(unsigned long vaddr, + phys_addr_t phys_addr, + unsigned long size, pgprot_t prot) +{ + return 0; +} static inline int vmap_page_range(unsigned long addr, unsigned long end, phys_addr_t phys_addr, pgprot_t prot) { diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 122f1eefb4b9..49d35b31f22d 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -444,8 +444,11 @@ walk_iomem_res_desc(unsigned long desc, unsigned long = flags, u64 start, u64 end, void *arg, int (*func)(struct resource *, void *)); extern int walk_soft_reserve_res(u64 start, u64 end, void *arg, int (*func)(struct resource *, void *)); +extern int walk_encrypted_mem_res(u64 start, u64 end, void *arg, + int (*func)(struct resource *, void *)); extern int region_intersects_soft_reserve(resource_size_t start, size_t size); +extern int region_intersects_encrypted(resource_size_t start, size_t size); =20 struct resource *devm_request_free_mem_region(struct device *dev, struct resource *base, unsigned long size); diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 12c8180ca1ba..976ce6d5cf70 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -298,7 +298,7 @@ __ioremap_caller(resource_size_t phys_addr, unsigned lo= ng size, if (memtype_kernel_map_sync(phys_addr, size, pcm)) goto err_free_area; =20 - if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) + if (ioremap_map_page_range(vaddr, phys_addr, size, prot)) goto err_free_area; =20 ret_addr =3D (void __iomem *) (vaddr + offset); diff --git a/kernel/resource.c b/kernel/resource.c index 1b9cf2244b3f..c575ed87d67a 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include #include #include #include @@ -713,6 +715,67 @@ int region_intersects_soft_reserve(resource_size_t sta= rt, size_t size) } EXPORT_SYMBOL_GPL(region_intersects_soft_reserve); =20 +/* + * Walk encrypted MMIO ranges registered for TDISP/TSM private device + * regions (see encrypted_iomem_resource). + */ +int walk_encrypted_mem_res(u64 start, u64 end, void *arg, + int (*func)(struct resource *, void *)) +{ + return walk_res_desc(&encrypted_iomem_resource, start, end, + IORESOURCE_MEM, IORES_DESC_ENCRYPTED, arg, func); +} +EXPORT_SYMBOL_GPL(walk_encrypted_mem_res); + +int region_intersects_encrypted(resource_size_t start, size_t size) +{ + guard(read_lock)(&resource_lock); + return __region_intersects(&encrypted_iomem_resource, start, size, + IORESOURCE_MEM, IORES_DESC_ENCRYPTED); +} +EXPORT_SYMBOL_GPL(region_intersects_encrypted); + +#ifdef CONFIG_MMU +/* + * Map @size bytes at @vaddr to @phys_addr using @prot, splitting the mapp= ing + * when TDISP/TSM has registered only part of the range in + * encrypted_iomem_resource and per-page encryption attributes are require= d. + */ +int ioremap_map_page_range(unsigned long vaddr, phys_addr_t phys_addr, + unsigned long size, pgprot_t prot) +{ + if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT) || + region_intersects_encrypted(phys_addr, size) =3D=3D REGION_DISJOINT) + return ioremap_page_range(vaddr, vaddr + size, phys_addr, prot); + + while (size) { + bool enc =3D region_intersects_encrypted(phys_addr, PAGE_SIZE) =3D=3D + REGION_INTERSECTS; + unsigned long run =3D PAGE_SIZE; + pgprot_t run_prot =3D enc ? pgprot_encrypted(prot) : prot; + + phys_addr +=3D PAGE_SIZE; + vaddr +=3D PAGE_SIZE; + size -=3D PAGE_SIZE; + + while (size && + (region_intersects_encrypted(phys_addr, PAGE_SIZE) =3D=3D + REGION_INTERSECTS) =3D=3D enc) { + run +=3D PAGE_SIZE; + phys_addr +=3D PAGE_SIZE; + vaddr +=3D PAGE_SIZE; + size -=3D PAGE_SIZE; + } + + if (vmap_page_range(vaddr - run, vaddr, phys_addr - run, run_prot)) + return -EINVAL; + } + + return 0; +} +EXPORT_SYMBOL(ioremap_map_page_range); +#endif /* CONFIG_MMU */ + void __weak arch_remove_reservations(struct resource *avail) { } diff --git a/mm/ioremap.c b/mm/ioremap.c index c36dd9f62fd5..ccf938628e55 100644 --- a/mm/ioremap.c +++ b/mm/ioremap.c @@ -40,7 +40,7 @@ void __iomem *generic_ioremap_prot(phys_addr_t phys_addr,= size_t size, vaddr =3D (unsigned long)area->addr; area->phys_addr =3D phys_addr; =20 - if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { + if (ioremap_map_page_range(vaddr, phys_addr, size, prot)) { free_vm_area(area); return NULL; } --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012065.outbound.protection.outlook.com [40.107.200.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9B963EB802; Wed, 16 Sep 2026 11:57:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789559834; cv=fail; b=evv8v3dPh4rsCcOH2j07qkZMRnO2LqQNVvaQZoHIGp3WYtGzqGlwfjjePAWPd9dipY+s7czzsqztso1gwprCQUIsBrEuTEUVXr9G8PM7nw6kIYT0N3qxABGqG3NZ8E+iNqLMer5D2LeACa7soUwzRz+e+E1ZZ+3tWFaP8nd0TzI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789559834; c=relaxed/simple; bh=BJModVS+cADdJhqRKK0S1aFEdmuVD3rZQFvp2IOMaIk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=INCkDgOorBJbrmsdKlv17qZ864N4HHyHdNZm16FMEyVDBCFa2lT3J31bmZPOT/Bi2zHlfqx//+1VEXCCMFcdF9l8LOdOrv3HDF1DvhuQv83iRjzK33G2cN9CLYtXbgVHvXoPdzKQxeKiz5Ve9BylE0tnakd09QKtWEswfIelc/U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=Gi07ps9C; arc=fail smtp.client-ip=40.107.200.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="Gi07ps9C" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l+SiFZ7/hHfUrDLNpVjc22zytUw7mMLTkNxt2r69S/qdu0carYYohxObD3yjvEu5SQ+wuQB5XlBQtUYxqK23iFPpi97i/zOUOutR5bio1rYvBG7vh8eTJRa7JEw0ia8z1aSHpTYQV9X8xqC/ahDTR54v0kFasHb36sea796g42VVvgBkDCOetPJ0Ti3nNfTJvVd1PUzjB9O8r0JSoC7HMnvIQrSLvUt1YBqy1cqr9RBxrMuTan+xoxsIXP1WwomplLJ0+xvcYvBPi4OmcNiAP7EiSaA78S74jQsWh5GOi4LlWJkdJ1/y2eF7yfwSjql3kUPkYNY39HNyHj65MPauDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=U59zJdwFWF8Dtpjn0ZNqO7P2OXSyW40uUqet0Z5N1JU=; b=wH4q8IqwEmW9neFuBRcBWVeDfcDVooZbJzAoYEaB03BZq8MFLpsUT9SNJK4/LA1+cPPHIA8UtaSQYE8Vz1RTVNIa9rfTP/fHer1KhXxX1lTaK/UzA3lhHh3nQQn5R1aZ3R5w+suwK+v0PI+7JZC8V7KgAVILBkgZlDEfJ65S9rsEP4Fmv4pmpyJnPQ5r6jnRi1XUFYABorMStBPjUTLDXpYOsTKX33v/3rA93XuBvBQYsiPSgx0umdgkfSLyefokQkbvyDsV4Vs6YLjNVywjESue4wzmYUycoYcNYsDgcLwNQjWO72vQAAcdOuev1MzoOtkJqAjgxrLcRHyEUqS6zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=U59zJdwFWF8Dtpjn0ZNqO7P2OXSyW40uUqet0Z5N1JU=; b=Gi07ps9CzGoJ81/8k6Wbcbo2i1+zlay2fkTSjAjFrf0a4xOQv7YRLHjN77rhDs7p8+Wl/5mvaQkQXXwzqAMUUyJYXlSoLYvgj6Azcig8qLvThcWeRs9bl2er29aN1DAyj9u4cBH66SYMUYPx3TzdI7HG720ZqjXhASc9Wc77DsI= Received: from BN9PR03CA0695.namprd03.prod.outlook.com (2603:10b6:408:ef::10) by IA5PR12MB999278.namprd12.prod.outlook.com (2603:10b6:208:603::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.11; Wed, 16 Sep 2026 11:56:58 +0000 Received: from BN1PEPF0001854B.namprd05.prod.outlook.com (2603:10b6:408:ef:cafe::5a) by BN9PR03CA0695.outlook.office365.com (2603:10b6:408:ef::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.9 via Frontend Transport; Wed, 16 Sep 2026 11:56:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF0001854B.mail.protection.outlook.com (10.167.248.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:56:58 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:56:33 -0500 From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 07/17] x86/dma: Revert "x86: Remove unnecessary architecture-specific " Date: Wed, 16 Sep 2026 21:51:47 +1000 Message-ID: <20260916115159.1938195-8-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0001854B:EE_|IA5PR12MB999278:EE_ X-MS-Office365-Filtering-Correlation-Id: 448520c7-a25f-43ce-e785-08df13e99c7f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|7416014|376014|32650700020|36860700016|82310400026|56012099006|11063799006|22082099003|10067099003|18002099003; X-Microsoft-Antispam-Message-Info: oWYjiIiilI1/ltPRVsCgLypCaO9vdfmAiW9o7bG/tLr2NRbsTlSQv8K3/d8rX5M3nVeN6TkYSM0w/F84RRGrLZsu2Ldkmc4ao/v8bnqwZasx5h5XVYDVuAsWhTTT9NFe6UpG4yaEsyyKCfdO9tOujEJEkc6RxwvGJD8pvPIwjcZe/hiQPRg9ahlPVTlPguqvcxaE0HlKapm8SZdVvh1v7e/GExGtg9hmAmQqi+88Ew0CeUueYnm2cOkNy4Hqh293Bp33eoouGRPfo2SJmIk6Kny0EZqIWDioPOOsC4H81BGc40CEsUhgdf1cThyOgmdWNPOgo2Qbl/SsdmoWPqNymLBymYwfIrB8blbG7dDXHC6wcqhv1eGLMJzbry36D/Aejm39ycmLZKQGzAPzJrIAXN/CzMR8MBpzyYhV/KYmnHaC5Xj8lCgybKAqQuavFgIdTHzm9LVsderQaU79gQoXCU+oWJDzAr295ed6KTXKdZZJg8gGA6Tbpd38JNDlPxoddI0RR14x2MijKrCrsoEGapRMVFegBZigvRmxXJqy2QrB+tPg81V4TV196umnkVC7nTxZQQOx0u03/i1SaUcNKHvonyCjMqj6V9gxIZbqRiXNrmla5PQFBCxnLFKFMm689C1qxvRd9yao6HBZMwM6/KCKXwGbz6i/RoOC18iiTPVntLke1mU7l6ZDhxJBnqvRbhtPwZCwBHfSwRyn0o0mDg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(7416014)(376014)(32650700020)(36860700016)(82310400026)(56012099006)(11063799006)(22082099003)(10067099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 06G2FJL0nKGF5TZJWtb7HCRGG+2PKlr27MT4WesUbZV0+gY80l88PL3BrmSeQ5beh70gGokCsKSRysqzfX3ciubcsIdAgmE4y0F4Ova3YxLQ5ozXQV8jIvB/ODOKm0hzPGI1pSwI1ByYd5u5QCjB0hPfjquA08XIbaOue6zkn1tV3Kn/gUAylPpox6/hZRAaJBMEj7DLM5b2wwi5kO0ZHkLwfHDI6r/j1crQDqupTVDXVqOuwF68hi1zCDtYsqvl3N1ntLgU3p8HTTB75Muqf9IMzhthlWMGQpWme4gTOH1dPPBGebMzKO/lwp4X8IixDkk8V5F7M20c7y6q0Em4t50tzsSw6gpQSlPcV8ahXZOZq4skJKBSdaGvLnoLoUvMa46yGRJkzCkyOSNOvQFGaxtyRraDo/hGmA4sggJrE4UwcXwFsqenewvBgglqYzrr X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:56:58.3314 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 448520c7-a25f-43ce-e785-08df13e99c7f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0001854B.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA5PR12MB999278 Content-Type: text/plain; charset="utf-8" The trusted guest device DMA setup is going to distinguish encrypted and decrypted memory and dev_archdata is a logical place for it. This reverts commit c256d2a8adf2f5670ca262979c451ec4c1108e38. Signed-off-by: Alexey Kardashevskiy --- arch/x86/include/asm/device.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/include/asm/device.h b/arch/x86/include/asm/device.h new file mode 100644 index 000000000000..7c0a52ca2f4d --- /dev/null +++ b/arch/x86/include/asm/device.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_X86_DEVICE_H +#define _ASM_X86_DEVICE_H + +struct dev_archdata { +}; + +struct pdev_archdata { +}; + +#endif /* _ASM_X86_DEVICE_H */ --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559875; cv=pass; d=zohomail.com; s=zohoarc; b=JI7ZZNihQuzGLdKldNRQYSizZjkSvk64OlwOO0I76/b+ATWjipWAzoSynFw2IJhTC20MlDn3Ug5KwuDqQJMkeg/ppINZxW7M6ywu8QCD2dkii145mg9EbHWllc6cAXVk+dl5iLsCCMjzV2jgSuM1mv1470LBN9AXobgwHHRw4N8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559875; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0HUBrkcanKP7HSIPLpfduG1GgH85AS/UaJthCpuaLQk=; b=g7dMuR7e97x4g4LmzS6O953JIJSrIL1gBhU2UfYuTtLwo0s97vA8xBl8GE6z5+KUAQaCAhTAWT7mZSW38niYcwNICxCjH/WJKD5v7kSDpD08G9W5sDhB2lvxj7eITsAsdJWYPRHIn41bPwyGGFxEUmTRGqa+OuSa2O8bo8mPKYA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559875861844.5563785775853; Wed, 16 Sep 2026 04:57:55 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422927.1648245 (Exim 4.92) (envelope-from ) id 1x6oGm-0001hm-SD; Wed, 16 Sep 2026 11:57:44 +0000 Received: by outflank-mailman (output) from mailman id 1422927.1648245; Wed, 16 Sep 2026 11:57:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oGm-0001gm-OL; Wed, 16 Sep 2026 11:57:44 +0000 Received: by outflank-mailman (input) for mailman id 1422927; Wed, 16 Sep 2026 11:57:42 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oGk-0001f4-BL for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:57:42 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oGj-002TLu-OA for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:57:41 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa8425-8faa-0a2a0a5109dd-0a2a4504a492-44 for ; Wed, 16 Sep 2026 13:57:41 +0200 Received: from [40.93.201.71] (helo=CY3PR05CU001.outbound.protection.outlook.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa8433-b57f-0a2a45040019-285dc9474ad8-3 for ; Wed, 16 Sep 2026 13:57:41 +0200 Received: from BN9PR03CA0273.namprd03.prod.outlook.com (2603:10b6:408:f5::8) by DS0PR12MB999311.namprd12.prod.outlook.com (2603:10b6:8:42c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 11:57:34 +0000 Received: from BN1PEPF0001854A.namprd05.prod.outlook.com (2603:10b6:408:f5:cafe::a5) by BN9PR03CA0273.outlook.office365.com (2603:10b6:408:f5::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.9 via Frontend Transport; Wed, 16 Sep 2026 11:57:33 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF0001854A.mail.protection.outlook.com (10.167.248.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:57:33 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:57:10 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e0hZQz2ly2aua2Z6ZGSh2w8G4Zwdd2zHDTyQNsPDeFJzZlb2avbBchHKRIOXzb49t7PxXqjLsMnzaMkk7mtwLM/MSNG/eUN2YuY2ZjLWnUIN6CNpo7+P9bHMduW9QiimGvNdsENfL4rP7XU8SjESAlIS89+aNYuw3/pWQ6YPX4O/Le0v01N/nKbEqP5EvHAXEXNM9Bl+TIqlTdwyCvWqusFJc8zKV9cFp0cUeeDx4gcQG4kMUHZCmrAH4HFysNBh7NJxP6vQnz15BJLDXqb5dasTR6R7xkNDD2KaeaPd0tU3D84yPwr+wql95dkgOJ8jwja4q4z8aClhEF0etnpgzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0HUBrkcanKP7HSIPLpfduG1GgH85AS/UaJthCpuaLQk=; b=PrcPtrvkgZBxuroIXC3TwasdGTxB/zfCXaknrPstK9/nn4DlIj4O3R46UmNjnE867EfRv87KVb+2+Ek6ExiZpz7H8KRK4Hp/rd6houOy+BH3W6EGiNGWI0Htqi3pTKjCvEv+ORDwONTxWGFFruqHaPMmV/LYCrjxKk+9zuDq81ZZ1Yg8DUkF5yuN4WTtg/Q007QLbOotsJvTU/OrPBQ4CF4HhO8SrRPlwIVcO+LU6NomEqyucPb9dSQTcbXuFyJPgpOb2k/vCCyUfPFO/6nV7egXG099zN1XXTFcnsgDQHgRbdDQdp8IKy3F1aG7F0mGze8isCWRW55dZbgpRO1N2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0HUBrkcanKP7HSIPLpfduG1GgH85AS/UaJthCpuaLQk=; b=QV15anIuuHWTYLolbBMi91et8XL9OGeDIsQrAoRT8BFl+I1U6jsdYMCz49LJNt/7euLhofzeBxsUagwjxE1osQAWRXh/yDwOPP8f0+3eJxyytEMzYqrift3pJO6sgoiae6d2gbRDI9fDDd2DheM97h8Gm6RT6vrDPpzLS43byX0= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 08/17] x86/dma: Add ARCH_HAS_PHYS_TO_DMA Date: Wed, 16 Sep 2026 21:51:48 +1000 Message-ID: <20260916115159.1938195-9-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0001854A:EE_|DS0PR12MB999311:EE_ X-MS-Office365-Filtering-Correlation-Id: 812fd5a2-86d9-4479-97f7-08df13e9b1af X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700016|1800799024|32650700020|82310400026|23010399003|7416014|10067099003|18002099003|22082099003|5023799004|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: er94ITmWcnhrxhyFDFF8CA+wo3OcaYsqyrxyg8FsjvHuU9hbYcOn8yKJ8P9I9a6kAmssaycN1S60pGL/85Hz40P2Y07GKdnLBbE5aVSU7yKOJVYRTTzYDXONwHdAkp4KT9WaO9miG8qHfYuT8tRDj9n/p3qkJ75f0No+LFoexZJT0FCSK4OkfEYmH+fAvHNKjTnPnRHf0yQkY9i/YusrSpYYzODNqRZr9mSzV0nji0rDuy+fePlMkEe84ddhFFrHerpO/T9UwzZzahF42KDd8jGb89oWkRgq4U3qITSWdUMaHAvuY0MiukKz5gIr7Fa6tE2IXZjjtFFppFObdpCvVX5cZaK8u7l0CTjr9W1wQSxnnW0QeATbOVHQ5x4Jh3cGweFoRUKk95W2kDUXQUYF+EAiXIKtRxuquILQfmN6CiR0qsZFtwaGlJbR0uxNpf2jwx/v1J4eBfVBXKJ0r/QgOdEeimbiCSdIN8ORGcl6HEHuuiZGCLNsR8f73a7pkW6ZLDDfMRpc7B+ErLCTbDprdxhqK0aojQFf0Rc77jk3pAO4gZEHm89HDWrJGQHGfnFhwpcs96sYMG7HdFlD8COwEtJahgr9ul2CHc3td1kr4/4ek+EHfVg2qGB6XMCprqcVrjFXZw0tpKqFIjfEFFDaI7erOOMW8RRzdbL4T0DsJE18W7TTmtoOq2zYwB7ISP025qzd68WvKg7mhqXECJaxIw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(32650700020)(82310400026)(23010399003)(7416014)(10067099003)(18002099003)(22082099003)(5023799004)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Xt8sxNe21lwjTxCXMGse61wsz1HS5p7ZKAo4SfcdIkscuki7ds9IMSFXyuuHN+Rg+VAhJUDrULObfgnn2VVL75R3iStKXUY9kz1rH7C1OsEqT8PoH4W1aZrtox1ncrsG0LrgtMBr26FsKZgIni2keOEhhePVCe6WdFNrvJiLvQc9+VjtariGQ7y3M4iWyhQ29Zv5Vb8wUVIxiTEbZG7DVUzklH6KkbaFTdKBN4vSElKdJpOCIRl5LXgc03N5ZU58szdchfEgu1UsZJHbepmej50F+lrCm9Qb6F/HCmbkeSnaZWyEi6py/kqp8aRxZG8HdFi9quOamRi9EJ/lnCCmYXeEUwVx1FPKJrvDcXbArM+19SO/QbwysihNi7dbyYmLtw6MhD9o3UVYuFrCeP14A+jA1e6swbl/L5+yd+QuSCtmJRdIIsSwR3q/GNxmLRgq X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:57:33.8747 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 812fd5a2-86d9-4479-97f7-08df13e9b1af X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0001854A.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB999311 X-purgate-ID: tlsNG-ebf023/1789559861-516D2B50-E489C5EA/0/0 X-purgate-type: clean X-purgate-size: 6805 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559877009158500 Content-Type: text/plain; charset="utf-8" Confidential VMs work with both trusted and legacy (untrusted devices). The trusted devices allow DMA to/from encrypted guest memory while legacy devices have to use SWIOTLB or share pages for DMA. In case of P2P between trusted and legacy devices, the trusted device has to perform DMA with T=3D1 (a PCIe IDE TLP bit saying "encrypt") but the tar= get may be shared. One way of allowing the above on AMD SEV is using IOMMU sDTE vTOM feature which is a bus address: - below that address all accesses target private guest memory; - above - shared memory. Effectively this adds some high bit in a DMA handle to mark "shared" (on AMD). Copy the generic phys_to_dma / dma_to_phys helpers from include/linux/dma-direct.h into arch/x86/include/asm/dma-direct.h and select ARCH_HAS_PHYS_TO_DMA for x86. The x86 implementation is the same as the generic code for __phys_to_dma, dma_range_map handling, and SME encryption, with two additions for confidential devices: - cc_shared_dma_offset and cc_private_dma_offset in dev_archdata - when TDI is accepted is true, phys_to_dma() adds the shared or private offset (selected by DMA_ATTR_CC_SHARED), and dma_to_phys() subtracts it on the way back phys_to_dma() also gains an attrs argument so dma_capable() and swiotlb can pass mapping attributes through. Update the call sites accordingly. Signed-off-by: Alexey Kardashevskiy --- DMA_ATTR_CC_SHARED or __DMA_ATTR_ALLOC_CC_SHARED? --- arch/x86/Kconfig | 1 + arch/x86/include/asm/device.h | 2 + arch/x86/include/asm/dma-direct.h | 77 ++++++++++++++++++++ include/linux/dma-direct.h | 2 +- drivers/xen/swiotlb-xen.c | 2 +- kernel/dma/swiotlb.c | 2 +- 6 files changed, 83 insertions(+), 3 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 15fd9ec5ecac..c4df431e74b2 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -112,6 +112,7 @@ config X86 select ARCH_HAS_UBSAN select ARCH_HAS_DEBUG_WX select ARCH_HAS_ZONE_DMA_SET if EXPERT + select ARCH_HAS_PHYS_TO_DMA select ARCH_HAVE_NMI_SAFE_CMPXCHG select ARCH_HAVE_EXTRA_ELF_NOTES select ARCH_MEMORY_ORDER_TSO diff --git a/arch/x86/include/asm/device.h b/arch/x86/include/asm/device.h index 7c0a52ca2f4d..0dbc2c125522 100644 --- a/arch/x86/include/asm/device.h +++ b/arch/x86/include/asm/device.h @@ -3,6 +3,8 @@ #define _ASM_X86_DEVICE_H =20 struct dev_archdata { + dma_addr_t cc_shared_dma_offset; + dma_addr_t cc_private_dma_offset; }; =20 struct pdev_archdata { diff --git a/arch/x86/include/asm/dma-direct.h b/arch/x86/include/asm/dma-d= irect.h new file mode 100644 index 000000000000..37074c87bbec --- /dev/null +++ b/arch/x86/include/asm/dma-direct.h @@ -0,0 +1,77 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef ASM_X86_DMA_DIRECT_H +#define ASM_X86_DMA_DIRECT_H 1 + +#include + +static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t pad= dr) +{ + if (dev->dma_range_map) + return translate_phys_to_dma(dev, paddr); + + return paddr; +} + +static inline bool __device_cc_accepted(struct device *dev) +{ + if (!dev || !dev_is_pci(dev) || !to_pci_dev(dev)->tsm) + return false; + + return test_bit(PCI_TSM_F_ACCEPT, &to_pci_dev(dev)->tsm->flags); +} + +static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr= , unsigned long attrs) +{ + if (__device_cc_accepted(dev)) { + if (attrs & DMA_ATTR_CC_SHARED) + return __phys_to_dma(dev, paddr) + dev->archdata.cc_shared_dma_offset; + + return __phys_to_dma(dev, paddr) + dev->archdata.cc_private_dma_offset; + } + + return dma_addr_encrypted(__phys_to_dma(dev, paddr)); +} + +static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr) +{ + phys_addr_t paddr; + + if (__device_cc_accepted(dev)) { + if (dev->archdata.cc_shared_dma_offset && + daddr >=3D dev->archdata.cc_shared_dma_offset) + return daddr - dev->archdata.cc_shared_dma_offset; + + if (dev->archdata.cc_private_dma_offset && + daddr >=3D dev->archdata.cc_private_dma_offset) + return daddr - dev->archdata.cc_private_dma_offset; + } + + daddr =3D dma_addr_canonical(daddr); + if (dev->dma_range_map) + paddr =3D translate_dma_to_phys(dev, daddr); + else + paddr =3D daddr; + + return paddr; +} + +static inline dma_addr_t phys_to_dma_unencrypted(struct device *dev, phys_= addr_t paddr) +{ + if (__device_cc_accepted(dev)) + return __phys_to_dma(dev, paddr) + dev->archdata.cc_shared_dma_offset; + + return dma_addr_unencrypted(__phys_to_dma(dev, paddr)); +} + +static inline dma_addr_t phys_to_dma_encrypted(struct device *dev, phys_ad= dr_t paddr) +{ + if (__device_cc_accepted(dev)) + return __phys_to_dma(dev, paddr) + dev->archdata.cc_private_dma_offset; + + return dma_addr_encrypted(__phys_to_dma(dev, paddr)); +} + +#define phys_to_dma_unencrypted phys_to_dma_unencrypted +#define phys_to_dma_encrypted phys_to_dma_encrypted + +#endif /* ASM_X86_DMA_DIRECT_H */ diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h index daa31a1adf7b..616b66ccf322 100644 --- a/include/linux/dma-direct.h +++ b/include/linux/dma-direct.h @@ -150,7 +150,7 @@ static inline bool dma_capable(struct device *dev, dma_= addr_t addr, size_t size, return false; =20 if (is_ram && !IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT) && - min(addr, end) < phys_to_dma(dev, PFN_PHYS(min_low_pfn))) + min(addr, end) < phys_to_dma(dev, PFN_PHYS(min_low_pfn), attrs)) return false; =20 return end <=3D min_not_zero(*dev->dma_mask, dev->bus_dma_limit); diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index e2538824ef52..915c174f8b56 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -55,7 +55,7 @@ static inline phys_addr_t xen_phys_to_bus(struct device *= dev, phys_addr_t paddr) =20 static inline dma_addr_t xen_phys_to_dma(struct device *dev, phys_addr_t p= addr) { - return phys_to_dma(dev, xen_phys_to_bus(dev, paddr)); + return phys_to_dma(dev, xen_phys_to_bus(dev, paddr), 0); } =20 static inline phys_addr_t xen_bus_to_phys(struct device *dev, diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index ded7016a46a7..d7c7d15740ae 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -1764,7 +1764,7 @@ dma_addr_t swiotlb_map(struct device *dev, phys_addr_= t paddr, size_t size, phys_addr_t swiotlb_addr; dma_addr_t dma_addr; =20 - trace_swiotlb_bounced(dev, phys_to_dma(dev, paddr), size); + trace_swiotlb_bounced(dev, phys_to_dma(dev, paddr, attrs), size); =20 swiotlb_addr =3D swiotlb_tbl_map_single(dev, paddr, size, 0, dir, &attrs); if (swiotlb_addr =3D=3D (phys_addr_t)DMA_MAPPING_ERROR) --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559915; cv=pass; d=zohomail.com; s=zohoarc; b=kcJj5FDrqVS5JeEoJ4BLiBLwXsOWiYPB5xOCXfQqKkeU5h3hbJNg+Yes03TFdw8/qv1xYzEgYlARJUNlenvwum6aCtxD4zLKfvUdhP/S1rPvcrupzlZ6ROnAF89TBckUCCY3YOoZaCOZuZsBdP67L7Rgi0bz6QHIvjZ5h1NKzxo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559915; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UGeG5UViy26eddcMIwAbSGGeZIQdkW5rZ6uT6XlTNXE=; b=Fo3JYE3Y4MLVPdezRpHa00BehDjocHIKhs+nBwLoF1hjJeY+zobbMUKMpMvbQsxz8dHG5BNujtzneIVVrjV75l5rUbfoROgaEQuXZ0ARgzG3k395dUxMQagsqrHbhfeVegUtJH9Zuf6MHsSMpkSCnlu/tPWCahW5cROtb9nERGI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 178955991571898.88400454832856; Wed, 16 Sep 2026 04:58:35 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422938.1648254 (Exim 4.92) (envelope-from ) id 1x6oHL-0002Qp-9G; Wed, 16 Sep 2026 11:58:19 +0000 Received: by outflank-mailman (output) from mailman id 1422938.1648254; Wed, 16 Sep 2026 11:58:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oHL-0002Qi-3s; Wed, 16 Sep 2026 11:58:19 +0000 Received: by outflank-mailman (input) for mailman id 1422938; Wed, 16 Sep 2026 11:58:18 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oHK-0002QY-C6 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:58:18 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oHJ-00HC5l-OR for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:58:17 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa8455-bab6-0a2a0a5309dd-0a2a4505ddc8-12 for ; Wed, 16 Sep 2026 13:58:17 +0200 Received: from [52.101.201.63] (helo=PH7PR06CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa8457-4cb1-0a2a45050019-3465c93f6165-3 for ; Wed, 16 Sep 2026 13:58:17 +0200 Received: from DS7PR07CA0016.namprd07.prod.outlook.com (2603:10b6:5:3af::18) by IA0PPF6E99B1BC1.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bd1) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 11:58:11 +0000 Received: from BN1PEPF00018548.namprd05.prod.outlook.com (2603:10b6:5:3af:cafe::24) by DS7PR07CA0016.outlook.office365.com (2603:10b6:5:3af::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.9 via Frontend Transport; Wed, 16 Sep 2026 11:58:10 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF00018548.mail.protection.outlook.com (10.167.248.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:58:10 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:57:46 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NV6s6jceu/ZS4M3BPMMEluiazfdQPZuri/VXYG8FSfB8pF5RfGvI8kksyzvJh1cHeYt/hP8szR5ie159qViXlrh1SY9lGvhbu5dmTufyXT3sseJQWm7Pdf9lFLEPolNneGtHOSsAPz4dOhG6k/04XMJPxpRhi9RsKQf3/j3tDAfdc19utjvRzEEeURrMmYgdZniUX5L0/5du+sMEWpdDNq6CLuMA59yRjSJj0pM+vNWjCwJbkNMtb1QXcm20uIZu1+OR/cVOiIBt8lHb4RHA0/BWbFA+9vC5le/fcjxzpBZVjIBGuncX6s9Q7e+GYDbnsSjglIrstaxnFVONN1UZ0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UGeG5UViy26eddcMIwAbSGGeZIQdkW5rZ6uT6XlTNXE=; b=HgyaDOT99pzp46n9b4AsZkH2yBSKUG7QnzEUnYQY0d3JALrsGd4BQ175ZVfWaB/fAeQ3azTOA777KO3QyiJ5nGvIBZRctI3Hp01RwZB9MNObD9LC7jJVcXxkY6lelR683vnAao7EKvyM0D4ReLoDRIbMe3Ekd0Nkg4RWOIsH1FY7yC4XxFFuVD2NKkwwudPbVFDQEqFTF/Bc/jUMIl9FO0CF5+3XIGlczkJQlvL5frQ5W3h4UJvtcjvEG8TGICB7pcmiH/yVrQx9dlHzfO0x8Iz5iNKpRFxp1+uDRBVqWag6GTNRJ6yGjoPbFC5SZuiYOZXU4birCAg/yPJNAnXP0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UGeG5UViy26eddcMIwAbSGGeZIQdkW5rZ6uT6XlTNXE=; b=aotvzm2txPYMiNm37GYVZcv7nTGw4HjZldkCMfRHaQJlMMOX8qvwe9G9Rz8pgbK8ERMmHtcJhBs2ICDnRYXhQVvOv4OufpOw4mDEkaGW7vo6JlWmN2HF9VO8f/8dOBcSdgi3YXa9aQOmeqMyLY0xEDySEcjlpqVkM671GOxBUhY= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 09/17] dma/swiotlb: Force shared DMA for allocatios from SWIOTLB Date: Wed, 16 Sep 2026 21:51:49 +1000 Message-ID: <20260916115159.1938195-10-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00018548:EE_|IA0PPF6E99B1BC1:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c3e0d42-9d65-43b7-68d7-08df13e9c79b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|82310400026|7416014|32650700020|23010399003|36860700016|18002099003|22082099003|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: +GpeRrECie8z1D9ALNbaVkKslqe0K7+pREljkkHFWG+hTQaCiH4sIZT/MbiDR9MWL2T4L5pH8K9j6eQ0rPFIDktbKEJDVnSuavSQT1pE2jVKFVNcZeVDNx1QdN1qe+tQrVTtPfXe1thRZYFJl66uOmMmrKN4p4eZq3FxsS3dfsvFDmVKMuVncBGmBZ94WsHCgoFBLUSKVBOURsbaEoFJmN8osu4Q5Jdzr1Mlybij83EhAXICHeMQfZj3qDJW7raZ3TZvvNacja2NlGXKd/3Udyegr4sgtV/CWHzM+NlBC01JII9KMW+8CgIE6ADRG+b2l/ytc5sLzQGRZiHwgwS3WhB1kBADN6PSYOGmLGrvc03O66rDzvj9zt5ccDEaVWWDp4xN0o1v19z9238kLIaG3TFeJLDYOimtILWx9CEXluW4aDKRpNacF2iPneJboZ4b3NI7C885/y8n7nl/rlX3G8joXfFxsNYKvidXEIee3uDf67C9SEXZObD9PDP4YcmLGAJHNTwGORAMq61qBVd5+9on8qBAR2rWkQICNPkOEJKhdBxGAn3NLNCfoOJBbFOzvOWrGMQafUoTEqoIND74/TgH5zaPBLDC8XM1WgWm13XRATv7g8ynhEC9qN6OZMH1vv2U9Kf6jd3kloorCsRTL9A6DGb7AAJXpHbFlYdR7xiwANKrXsl/T/0jj9plvAsnMc4wMsrTs6HOkDX2GX7gVQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(7416014)(32650700020)(23010399003)(36860700016)(18002099003)(22082099003)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: N+QQCCWsHa7bqeHcyE9nTBdDa+bifDbun1axL/Jp+ouegH1jwRNDqGgZk9TnDMM0NkTrcFPDnH+mykQQ0BMSQxgY6hyIlPAIwKpGIAO+SlfWu1uY4kl2tIJYheErrmKT6AiYJLReu57IKXwx/n1iCmnQ/1sNR6Qx9rksJF+r7pSItlxQmXGUdxLCcqTz478u3FI20fTD5nJ7nyf37O4NpIHYbh3xpHya/3WGmaKBccRqqiF3pB0m10k//KIaBQcKbtyc1vuVtbYs5hu5q1T8AzJnqKlTvvdi8qtlFANfaGhlnhwnJA1w32iuN27yG1NExvnhRTcGPXtxAlggmbrjRRMf0VoeT0wKRj6X5ZhXvBNi9Egyrep6YAHcKOkokxnLq1riiT/QoWOY9upXNI8KANCUiE8B4qkM6/pLLtlzFqVPEro4k8b8NJ5zTk6WRHf0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:58:10.6516 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c3e0d42-9d65-43b7-68d7-08df13e9c79b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF00018548.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF6E99B1BC1 X-purgate-ID: tlsNG-c201ff/1789559897-730B22A1-DB02D9F0/0/0 X-purgate-type: clean X-purgate-size: 1147 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559917310158500 Content-Type: text/plain; charset="utf-8" SWIOTLB allocations are always decrypted but the DMA layer is unaware of those and will miss to adjust the DMA handle. Force __DMA_ATTR_ALLOC_CC_SHARED if SWIOTLB is used for memory allocations. This will be exploited by AMD SEV guest vTOM feature where DMA handles of shared memory have some high bit set (not to be confused with the Cbit). Signed-off-by: Alexey Kardashevskiy --- kernel/dma/direct.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index da665ca22d5c..dacf513d45fd 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -273,13 +273,14 @@ void *dma_direct_alloc(struct device *dev, size_t siz= e, } =20 if (is_swiotlb_for_alloc(dev)) { - page =3D dma_direct_alloc_swiotlb(dev, size, attrs); + page =3D dma_direct_alloc_swiotlb(dev, size, attrs | __DMA_ATTR_ALLOC_CC= _SHARED); if (page) { /* * swiotlb allocations comes from pool already marked * decrypted */ mark_mem_decrypt =3D false; + attrs |=3D __DMA_ATTR_ALLOC_CC_SHARED; goto setup_page; } return NULL; --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559950; cv=pass; d=zohomail.com; s=zohoarc; b=XgSyrvKOBqRbdO0felRwQsR6AYRT0/gKVKzjtusnEqIiCpzf1J/IH1vZ0Ha6k/Ar55tnjgCHEvAq+AOD+y/KETPJJqWPT4M3i7DWvQ07BFK8fQ7sSwYiMV6ZTbPKo//voDChw6OyHagsdQcFitXo0YETbfJaLlqBXw+i4VIRY8A= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559950; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uN3TtTwM+bwTehqyvzEhtWdo/9tbU5sGc+GO4ttJXns=; b=ZsNa6+F1R3z0nJyYH3T0qv1+4QIBwj71jdn6k71kWM1OCU6ZhtzxJlLirgfTenM4EAPQIlYY5DgmWy5Y2tJ8GeOt0hoHn1k+n/6Y9aCidSxOAph2op19IopajRxwRsTJz2znkYo+4rw6EGfEdLd4p7clpvvHeMuswTQNRqep3tQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559950244940.1288089463817; Wed, 16 Sep 2026 04:59:10 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422947.1648262 (Exim 4.92) (envelope-from ) id 1x6oHv-0003MT-Eh; Wed, 16 Sep 2026 11:58:55 +0000 Received: by outflank-mailman (output) from mailman id 1422947.1648262; Wed, 16 Sep 2026 11:58:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oHv-0003MM-Bp; Wed, 16 Sep 2026 11:58:55 +0000 Received: by outflank-mailman (input) for mailman id 1422947; Wed, 16 Sep 2026 11:58:54 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oHu-0003Ku-Ii for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:58:54 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oHt-00Gak7-Vh for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:58:53 +0200 Received: from [10.42.69.3] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa846d-2eae-0a2a0a5409dd-0a2a4503bbbc-36 for ; Wed, 16 Sep 2026 13:58:53 +0200 Received: from [52.101.201.61] (helo=PH7PR06CU001.outbound.protection.outlook.com) by tlsNG-33051d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa847c-fae8-0a2a45030019-3465c93d9270-3 for ; Wed, 16 Sep 2026 13:58:53 +0200 Received: from BN9PR03CA0782.namprd03.prod.outlook.com (2603:10b6:408:13f::7) by SJ2PR12MB8111.namprd12.prod.outlook.com (2603:10b6:a03:4fe::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.11; Wed, 16 Sep 2026 11:58:47 +0000 Received: from BN1PEPF0001854A.namprd05.prod.outlook.com (2603:10b6:408:13f:cafe::37) by BN9PR03CA0782.outlook.office365.com (2603:10b6:408:13f::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 11:58:46 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by BN1PEPF0001854A.mail.protection.outlook.com (10.167.248.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:58:46 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:58:23 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=seol/ZRYlk9PRV/AE/0igGP4M475B8bTrWiYjR7Z5NVQdKgQ8Snt2Iybu43auxQTLklLTDj+/czXGPucm0VRfzcuHZnrtWsnzt9fa564LGCuzyXYB2wboIBU0JiXD2tXbkUw4vznR7ZJdYwkqjhER+nCBLKlLXXLD77GbCUVxF55cBM98geU4KyUAbObpDwGwPlX7OUjvnyQ/ErVPhnYwe35LYF2lgl5JKmTc092duqdYS/xqXIz44O5hNx1ujjZtaQrsdxqobZsO6EZPAGhyMogjMHX3oHd0JDOqY35plSg988uH9TBWL1tdirm3lgBThESwB5WN07dH7u6fQsegQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=uN3TtTwM+bwTehqyvzEhtWdo/9tbU5sGc+GO4ttJXns=; b=XlTCsuXfh6cbbhbZNEiVEITWSHaHxkZnjq0bBeBSI5S9g72kOw6XGGLeK+K4EWewm32H7VlSEd4nr9nUOHdWNETpfESYKdGCr2rAYiTPH207To88lFcUGwNjCbRT5kfB/PfJJXyvT9Em+8pJ3/kxdg7x61bbkpD3JT9YQtyIVXR5ilk5oujw/aNZ0uubZrZfPpO/N0oLeVTV7PmLE9i4C+BeEl2/6Slm/wxe2mDrFRJf9rojTe83MvrKt2jeWQn8nrZyd2tWkH35wRnCkyEjLproJIrPBR1lP5u2c2UEo9YQu/qPilPg/lGoa9Pjy7GmzZv5ehcBcrlNaEp9KYwiZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uN3TtTwM+bwTehqyvzEhtWdo/9tbU5sGc+GO4ttJXns=; b=KNHRx1/uIQrLP/p1OqbUtpLgVwCk7UVtvYLpPsa2/jtKdsR4Vjqm3gQm0t1vp4EhK906ZcAgkkSaNp5GN9OT1xi2nBN7sRrVepy7neCrEzBcLk6mtscazitXsKE123nz5ng2gI1C17BYkbYjzOdNlcc5U03fFb1OlKx8D9A4k+g= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba , Dan Williams Subject: [RFC PATCH kernel 10/17] x86, dma: Allow accepted devices to map private memory Date: Wed, 16 Sep 2026 21:51:50 +1000 Message-ID: <20260916115159.1938195-11-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF0001854A:EE_|SJ2PR12MB8111:EE_ X-MS-Office365-Filtering-Correlation-Id: c49f70c9-81ce-478f-dac0-08df13e9dd27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|376014|36860700016|7416014|82310400026|32650700020|11063799006|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 1bJ49a9trfumDwoyn9MewgHhdhH/vcO7H1vXItEBAR2GcC7Oz87Mn2l/avJzWfkRSChnShOjFI7hXwvbMP4FfIal/XfkCyAQO06jw07jp3OKH8Fv14GY6YOHfTvUSlnHRxfsxtpJfmrCwkr9GnKg5GXYolHH8kdXZuVQtH+PnHROr5jB+rRKZUZkw+jMKi6EB5sMFZve0dHPB2LyTXPZfcqQSwRzRnMa9JPAmrYk6BmjpPlY/zGIZMRL4ogIwgoaoBWgr2X3fJECn8xofhkS/dPlWE1gm4LGMM32AysHf5mzmXFzDVjFx/CzkJpupwN0nH8TVL9pWKTlpIbIQXDjaLx+FkjqAMfx3fzEL7R4946H7Hyse1Woyyf1+rbrQX6IFOCMqIQA75eNFofO3sWviWdOBrpPfr3KmGpt74PsgqnSShJAKfS1rBPn1YyDMZkLp8IRElEVCiFMgecxLvI7J7mj2+8+4z5F1jrSmVH0Pm+vouATGQfb5p4qKwJd5g31NtCxqwjL3sFapbwogiTa2xbrqJegMhJ+hMbhT1MYg0hV+Xn4w7KKLhnAON+dlxkAOXrgjAYJhDrg6VqYsK3x1ZmsmutuwzCbubbgs27aDBSaTnor7fzVXyE4z3gIdRZrtCPFmFIGs1Lxt9GqNBFoPs+7N5a4otqlL9gf7mHsWsJ4fS9vrcN8OM8srKTIfIU3IRe3qhs521WNeSWpaqmQQg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(376014)(36860700016)(7416014)(82310400026)(32650700020)(11063799006)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qK/f3bcE1ASam6x2JuApZeSzxgwli4lwEhb+EPtO5GlbcvqWi2n0k+nCmOHidWa9c57wxnSKyVw6rpTH9uNaDmg3oJNXlIBXvGR1R/KFN/gP+3nnPsanWwrd57y/UdARYtTQx0oclZLQ0BGPI91gFjNkAlX5ujD1fxxig+qClAg8/i1f9m8YX9y28sjNZGmBEwP33TPzxrpHnN+hFi9AJNhz+zn1fgjuz4xCrtBlZIiJKBNAa55ix5MqPrc/Hp0hNMUb1/YlmECGfzThwtN1CwLiUVLLQlBKO1fcb1JIi5Qgv+5uPUz+SYTP5gl8NeH5pRlAUwiBM8wDq7PFX6NC37IA+rMpo1xfWlWcVjunL8MiE56oFApW110XZtgRGjDSOijBETZIzUKDFueWDJ8SMcnlpUO0wFZzFrYSoIR3W1JjxXGiUODmzMgF+4duPdAm X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:58:46.8022 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c49f70c9-81ce-478f-dac0-08df13e9dd27 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN1PEPF0001854A.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8111 X-purgate-ID: tlsNG-33051d/1789559933-6D8D54E9-B0A20225/0/0 X-purgate-type: clean X-purgate-size: 1464 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559951499158500 Content-Type: text/plain; charset="utf-8" From: Dan Williams With the arrival of "accepted" devices, devices that have been enabled to DMA to private encrypted memory, coherent DMA allocation no longer requires page conversion. Update force_dma_unencrypted() to skip accepted devices. Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: x86@kernel.org Cc: "H. Peter Anvin" Signed-off-by: Dan Williams [aik: re-added device_cc_accepted()] Signed-off-by: Alexey Kardashevskiy --- arch/x86/mm/mem_encrypt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c index 95bae74fdab2..805800ddbd79 100644 --- a/arch/x86/mm/mem_encrypt.c +++ b/arch/x86/mm/mem_encrypt.c @@ -20,10 +20,11 @@ bool force_dma_unencrypted(struct device *dev) { /* - * For SEV, all DMA must be to unencrypted addresses. + * Require unencrypted DMA unless the device has been "accepted", + * enabled by a TSM driver to DMA to private encrypted memory. */ if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)) - return true; + return !__device_cc_accepted(dev); =20 /* * For SME, all DMA must be to unencrypted addresses if the --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789559988; cv=pass; d=zohomail.com; s=zohoarc; b=HzFu0FrAcPl0TKvoixp8cuqpNLIG5A0R4tCsa1qolkL8GjsFGX26oszqJ7WRkl6c0a7rD1c/Aibdpu/jwmUf0pb9fTBS89hDDYGb6NAOfwswfw1JwzxiYkwiIVM++jk1uJ7U0UWVj+eApz3Gwn6MIE1ZVtu+BlhvrxWauUMjlTU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789559988; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qTsg1utTkplWuARlA0qswoeLICanNrYPE/18/PBEUNY=; b=T5EMC49w795Y9rm3YTeokf+aUuiLx62CNwfNQl6QtKnrH7fdSuSHXRSe5Gp8UYDykXTbgNCfed1zTl9sPqumrl+KQcUdAQQnFnWTa0j23lvNKrqfXNCd2daPa/YFNZqkDCGzAqn5015/WLIWR6F2tBoDupkejcao1kw9nPZuFlQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789559988458611.8245384906895; Wed, 16 Sep 2026 04:59:48 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422959.1648272 (Exim 4.92) (envelope-from ) id 1x6oIZ-00043m-Ms; Wed, 16 Sep 2026 11:59:35 +0000 Received: by outflank-mailman (output) from mailman id 1422959.1648272; Wed, 16 Sep 2026 11:59:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oIZ-00043f-JO; Wed, 16 Sep 2026 11:59:35 +0000 Received: by outflank-mailman (input) for mailman id 1422959; Wed, 16 Sep 2026 11:59:34 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oIX-00043M-RB for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 11:59:33 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oIX-00FRjE-83 for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 13:59:33 +0200 Received: from [10.42.69.5] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa84a4-8faa-0a2a0a5109dd-0a2a4505b236-4 for ; Wed, 16 Sep 2026 13:59:32 +0200 Received: from [40.107.209.70] (helo=PH8PR06CU001.outbound.protection.outlook.com) by tlsNG-c201ff.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa84a2-4cb1-0a2a45050019-286bd146568b-3 for ; Wed, 16 Sep 2026 13:59:32 +0200 Received: from SJ2P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5da::11) by SJ0PR12MB6832.namprd12.prod.outlook.com (2603:10b6:a03:47e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.11; Wed, 16 Sep 2026 11:59:24 +0000 Received: from SJ5PEPF00000208.namprd05.prod.outlook.com (2603:10b6:a03:5da:cafe::ab) by SJ2P220CA0004.outlook.office365.com (2603:10b6:a03:5da::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 11:59:24 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000208.mail.protection.outlook.com (10.167.244.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 11:59:23 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:58:59 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ofOgEZt5/WvZL398DiMP4cnJu+bAOQ7ChdryDjdv6oc3B+1IqZ5xoCor8N7Ik69lXihL8DalFNN9z171VyKvjWP7qM0DDXR3yLwNOmXuBqCv86Gbl8ba8tHqsafdCNrPxltMrbLTHvsJAE5IbcIcl+RldZJlImHm7npnTIGIzJJ1QMcy8I+eqcBMS9ZZqprVDYX2C05fuBYoOpwyswLPdGLbxffVcsQm3S+lV4Mtf7YbMTeFB9fehnnY8S4cHnUSdXF5aINmNiKz7F17iSKPebMKZAIN0MpN0ypjqkW2E4BYk1eFRto289kn9r4R9JwcoGJZ4lcE9S2+Jgiy17XQSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=qTsg1utTkplWuARlA0qswoeLICanNrYPE/18/PBEUNY=; b=rmoiGjoh+6GgaL646m2gMAgAeOVhpofkBX3f/ONIo6agDbJ3NudbMju58xl+C1BXMLqHJHo/SJLgCu6OfZ6ClRdQOK+hdd+xThXKfg0ZOf8ObPpFogMdFYwFsuEVQyDlOqpg6yNgukAg4WRCIldL4HVzAGdtQX2nPGDjHKo/+CXnz1CXQERwq5BbbujDJTMzsYKKk4HZj6Q0ZmvdBb7+OwZZswtvWAkI3jaCClT3FPSNqo8ZTMgGcp9Xw0Zxm0nnnymV0tycimCtTkLIwfYtp4uFWIZo/SDWyrbE3/S4DfvtntmL3XIUE/P/cTKwfr6stSp1zjl52cvPMVYQHPKRMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qTsg1utTkplWuARlA0qswoeLICanNrYPE/18/PBEUNY=; b=wzwC6nfwNmFtjgfk9sDcnKOMQ04jGfMzMCsC94PMwXHTyprnLafBJ/OMhSdIIZT7e1gKWt5OaYurLNADb4gi+KaWK8d7Qz3Dv4f9nx3JwyUsO5xKzntXU9YygO+pNZBzDvE9YfRcVfyBpz6mQnPpD2GxVC7juJ3ZzS7smUM8JKs= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 11/17] tsm/core: Add TDI status Date: Wed, 16 Sep 2026 21:51:51 +1000 Message-ID: <20260916115159.1938195-12-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000208:EE_|SJ0PR12MB6832:EE_ X-MS-Office365-Filtering-Correlation-Id: d8ed4718-0d0d-4492-fba9-08df13e9f352 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|32650700020|376014|23010399003|36860700016|18002099003|22082099003|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 1gjrxiOzZs++uLN/08CsbVuU5pzivX1w5sGfokhVo62HhTqsZAyt2altg4jQKy61YsFa5Q4JpAePEy56dZ2EtjTCeKjExL81JRYHJiYMY2uEiMnekm+X4HfnK61KTogTrUDOSWqYPac0RXsqXDF4wcWCECweQL2O+qrasaKF9Ob2twna6aAPVekdisRqgLeJlZeWB+Pyy3Bj167PJL09ZDmneWPqJ/nWbZ0cNzIZ9Uqu+TxE79xdf2uWrFfFyctA02oysbQLQg7NUfSUI+121Lh84kpVXJKbsCp4RX8FM8vKws3J3lHABQArpnrkiLAf2KQseddH0TJq+Gv/qJeo3ppTVrTxG+l8MATdtE6Ao3U3P+6gT3P9M6R6/DAw+GSzx5a/5muRGjOlLBCzMMiMgoy/exC0T3bXU9lf4eS/7wyQMhaEBz721jzLwZwa2Dv1PivZYIiWNzz8ZjfwLrQbmMk5/p8DJ5F9/KW0TMkedGokdgxIMOBxpzKrj0WOPNZTSFL2PdgqRRvebRWS/tn5JkJTmIfnpT4wVrU/EEANzAHAwcREbazlGn77NGogt+eYeQ5dt8vAtItGg7Je1OTdf7apf9IzPoCJmzfouuIh9OdDINS2GF86XJJkhSUJfr/0LPVLQjFXnrujzmzz+zKMX+LG2m67WgXyvo8/Y0n5DPWZ4ATFg4mJDgroef2p5B6hrmxaAbtQhopAI4TWgp6URw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(32650700020)(376014)(23010399003)(36860700016)(18002099003)(22082099003)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Fw53La2fWg2oO27psEqX3jIivEE3n3gbx3/xjn+KQHm1lz4FNVBajz48hTuLTPBt6uG2tVEbRRVvKQr7qSZv/THDK5/fsPRLILmlZp0+sWXWEMlp25tRTvdUlkvhgDpQhBBk7Xpw2/WNTNcciwCV4ENZvJuvlLVUt1sTm2llbK9DDNN55pWfltlQswjlh2XFTQbM3dBdqqt+eTE/9bviiGOC+WUEncGgm0s5E9hPqxwtrOEHu++p+E6DTbn76h4jtwoev54pqgHFtv9qpZ3UnUOsoBgI/lRE0iX1qfId86tWTOyfo3im62f04xW5+LNlhm5i3d1Ohcu/n4ZPM6reeV5E+Yufduo2+SyugUAxp87dhY4NTuBXalrrqjLQ46tVhj9YCY3Hk8coI/nSAbVxEzdI6mbCYS8c/Eerz4Y0bR2xhA+W8KI8DfNb2knsosaa X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 11:59:23.9209 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d8ed4718-0d0d-4492-fba9-08df13e9f352 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000208.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6832 X-purgate-ID: tlsNG-c201ff/1789559972-F56AD2A1-539BF0DB/0/0 X-purgate-type: clean X-purgate-size: 2853 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789559989623158500 Define a structure with all info about a TDI such as TDISP status, bind state, used START_INTERFACE options and the report digest. Signed-off-by: Alexey Kardashevskiy --- include/linux/pci-tsm.h | 69 ++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/include/linux/pci-tsm.h b/include/linux/pci-tsm.h index 9b34304d9a1f..2ca577e2a37e 100644 --- a/include/linux/pci-tsm.h +++ b/include/linux/pci-tsm.h @@ -11,6 +11,7 @@ struct pci_tsm; struct tsm_dev; struct kvm; +struct tsm_tdi_status; enum pci_tsm_req_scope; =20 /* @@ -88,6 +89,7 @@ struct pci_tsm_ops { =20 int (*refresh_evidence)(struct pci_tsm *tsm, const void *nonce, size_t nonce_len); + int (*tdi_status)(struct pci_dev *pdev, struct tsm_tdi_status *ts); }; =20 /** @@ -331,4 +333,71 @@ static inline ssize_t pci_tsm_guest_req(struct pci_dev= *pdev, return -ENXIO; } #endif + +/* private: */ + +enum tsm_tdisp_state { + TDISP_STATE_CONFIG_UNLOCKED =3D 0, + TDISP_STATE_CONFIG_LOCKED =3D 1, + TDISP_STATE_RUN =3D 2, + TDISP_STATE_ERROR =3D 3, +}; + +enum tsm_tdisp_status { + TDISP_STATE_BOUND =3D 0, + TDISP_STATE_INVALID =3D 1, + TDISP_STATE_UNBOUND =3D 2, +}; + +/* + * struct tdisp_interface_id - TDISP INTERFACE_ID Definition + * + * @function_id: Identifies the function of the device hosting the TDI + * 15:0: @rid: Requester ID + * 23:16: @rseg: Requester Segment (Reserved if Requester Segment Valid = is Clear) + * 24: @rseg_valid: Requester Segment Valid + * 31:25 =E2=80=93 Reserved + * 8B - Reserved + */ +#define TSM_TDISP_IID_REQUESTER_ID GENMASK(15, 0) +#define TSM_TDISP_IID_RSEG GENMASK(23, 16) +#define TSM_TDISP_IID_RSEG_VALID BIT(24) + +struct tdisp_interface_id { + __u32 function_id; /* TSM_TDISP_IID_xxxx */ + __u8 reserved[8]; +} __packed; + +struct tsm_tdi_status { + __u8 status; /* enum tsm_tdisp_status */ + __u8 state; /* enum tsm_tdisp_state */ + __u8 meas_digest_fresh; + __u8 meas_digest_valid; + __u8 all_request_redirect; + __u8 bind_p2p; + __u8 lock_msix; + __u8 no_fw_update; + __u16 cache_line_size; + __u64 spdm_algos; /* Bitmask of TSM_SPDM_ALGOS */ + __u8 certs_digest[48]; + __u8 meas_digest[48]; + __u8 interface_report_digest[48]; + __u64 intf_report_counter; + struct tdisp_interface_id id; + __u64 tdi_id; +} __packed; + +enum tsm_spdm_algos { + TSM_SPDM_ALGOS_DHE_SECP256R1, + TSM_SPDM_ALGOS_DHE_SECP384R1, + TSM_SPDM_ALGOS_AEAD_AES_128_GCM, + TSM_SPDM_ALGOS_AEAD_AES_256_GCM, + TSM_SPDM_ALGOS_ASYM_TPM_ALG_RSASSA_3072, + TSM_SPDM_ALGOS_ASYM_TPM_ALG_ECDSA_ECC_NIST_P256, + TSM_SPDM_ALGOS_ASYM_TPM_ALG_ECDSA_ECC_NIST_P384, + TSM_SPDM_ALGOS_HASH_TPM_ALG_SHA_256, + TSM_SPDM_ALGOS_HASH_TPM_ALG_SHA_384, + TSM_SPDM_ALGOS_KEY_SCHED_SPDM_KEY_SCHEDULE, +}; + #endif /*__PCI_TSM_H */ --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012011.outbound.protection.outlook.com [52.101.43.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 439A64EA397; Wed, 16 Sep 2026 12:00:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560026; cv=fail; b=jqBO8NtBFL4K/VLJubI0PBAui7FphPe8+u057Lokb/KMBmnsCyn6bcqFwllfsuLLqCx9phx/q05ti47yY33yBrFMdZViUqUB+rHUntsVGPYJ6tFL1Xw2dBihuFHScke1OYyCQ6ZiMvoEzxdQGf+BFjRovNRd1CMyv3FG3oHSTqY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560026; c=relaxed/simple; bh=sttoicWwFhSqRBO1Rked7Fn122Ur/QMolwOebCg8C3w=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AE+ZyHFuIA4eDXnTVTZHG6WoTVNEyeK/8Dr+bOG6wwejKce1Nov9CMEe8qNMXbT/oaN1BnQRrsA9MZh0E4gh/fFDQYqczu0eL8qP92PMWSIzC4ae22jIJ3hnRAUd0sC7ZjtyT8D2P+vbTDSCkOwMXMSinLuS7K+8r0VvMjDpd20= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=gl3xaf2Y; arc=fail smtp.client-ip=52.101.43.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="gl3xaf2Y" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QOT7sVRXy9De2202CBbsIjMNa3wpE64zrj65FxGGKS7PGb1MplltqpoLeCUpGx7ERZpY3Wx3NAV/QLDD5ajZ8TWBhHAmA7svGZ0jRP+vm0EfeMRqzOra+gqEXc3wU2EUl3w5PL74Psv9aAjdKrMNFUdLmRVJkQK2/JK/tDQMJIp5RWvNbrsOmDMxwqf1AYrbxWIFO9Q6nLPhIlAHBFeZiskQzoJuvogtBFK//uDXAZC/DiazhNPFh9XmflxC3nO/YGV/6XeV9IWs6D0zAN0r07oXvJZZwudZ9ulmklLYQEAsk+qdJ/Qo0ulexhdhaCd/lK0XwXDFaXjI9mK24RPtWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=jaFnTLlUeuS15Vco6JUFNTtjEg2/GLK2yLIZqCLTaAk=; b=Q5qrJsNAJXmzz0ze4iE6i1fEBUGJQFh0UxYftcksk8ufaz1yIDLcrj4GXAK8nACOLg6tFJdf36XWt0fiuVrvSDAcZVafTi+ehnmYjj/Bcc6GqwKJB0oncFHWsDbq+FKYYIVLek3mX2tJJhtqKAUChv3FCxISUBsAUFX4KWQw4+O+YaaDU2dxRiPqDCEHgUKL89cqNcuwbWD3oLQ5qPOjVAlgf7lgsqbw52wuZeaNyOWuVLUV5BeUYZvtR4ZH06sTqUsJchF4+DCIuIq/zDzCxVKC2Py6c7IvuS6xtZM5PncphGiKcCkKflcuw2KKxDCCQZ/KrxVKCadiD8iTS2wqng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jaFnTLlUeuS15Vco6JUFNTtjEg2/GLK2yLIZqCLTaAk=; b=gl3xaf2YW+xaUIdq/Ze4Vsnj1kQ2CrbCHsosjClYBGfqZKutdv3pYi+i/jzEWmd68FNLaEXIyXR//z2vbzRuO6R+38BRzH0IfFjoSr/u2P6BUTDTi5bwX8GkZ01py42Csy+noYDtShAmBDoL57gbb5TnjyLoMF0lpOHKJkgiW4U= Received: from BY1P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::11) by MW6PR12MB8663.namprd12.prod.outlook.com (2603:10b6:303:240::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 12:00:06 +0000 Received: from SJ5PEPF00000207.namprd05.prod.outlook.com (2603:10b6:a03:59d:cafe::d) by BY1P220CA0011.outlook.office365.com (2603:10b6:a03:59d::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 12:00:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000207.mail.protection.outlook.com (10.167.244.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 12:00:04 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 06:59:40 -0500 From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 12/17] coco/sev-guest: Allow multiple source files in the driver Date: Wed, 16 Sep 2026 21:51:52 +1000 Message-ID: <20260916115159.1938195-13-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000207:EE_|MW6PR12MB8663:EE_ X-MS-Office365-Filtering-Correlation-Id: 2b51706f-555c-417b-6072-08df13ea0b92 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|32650700020|82310400026|376014|1800799024|7416014|36860700016|23010399003|18002099003|22082099003|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: c1h/v5dfyxtiJ0WMVLNUDUgDxQatd0LMYdCKEY7e04HynA36o8DyKva5ruSvgqLaYCZoACqFUTHJK34ToQWM2MCCBg8Kk7vj/2plyvqelPReb5cAchDM+rTgWz3R7+Bnn8ph2gDyR2gM1wOZ3eh96GmQgRBj+zLT5cv5IdSYd3m2550ol3Ju1H9Km4MeCRVLxS3P5tQG7Q6T60yUsavCTOXu+/lSdcNSXfH4XlPCpgcpdFxRyqXRxBfbCDZiWLw0jYPQBg+gnHcm43Ypv3xHiGWQZTrQCmEP5i4jtweCR3YCmnazEVmPJCF5QstAYvxEeM743M1roHVrc9DqPuzMr8zHM0+lYfjxrS1wZoed/qJt1s5IE2AwGFgZuW7dDZtT6kWHu/51GndcomO9IWD/jwWkOFsL7bzdnTa7mI57odOgfeKiGNW5KML1b9MMJHQlon4dZskVmWAL8Sz4TeZsfI2snrZQqZHw1VeqP6cNOd1+SAikuN0yICPz2mmXFbsY9kDso0V8ykYrmJaFLk+T0sI6wo9CqW8wOzY2zQE86bI3j0nzMoUhX/M92d3xvTibl5Q8beTHkpAFkouRueVl86YNLgpODk3wkrrQXf65BdnneQuNWY7Gj2PWopz3bSypTYcLY/pRErszp3XubjRa2THlRPuWrl2ob/Hd5ZjCxnrdU7d5A7UKCUOQWy0Tr3m4DZo2fK5268pMv5G9i3j5zA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(32650700020)(82310400026)(376014)(1800799024)(7416014)(36860700016)(23010399003)(18002099003)(22082099003)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mS/imRrmbpxps67qGJxsphoc6eABPi9uEQAis97tyVjMcE7n1lUTb6+nlr386lpHVT/77AfVBAUGjtAsAI5U9VXIwQoNQqyOCrtenVvuZ6eZw8IQ01EvVcJIJZKPAyUI4IO5d87YjfhcEbh3mwPSHX0ytq1np4FzH1zAlBJzgfTo8p0WT7ftEYpWH/8xtuWrky0lg7Vb96bVRK0Oeh6Z/Bqtz30YVY0Ax3IUkvh2HhjL40wS9DrhCJBLx7/jYYe/jKEXsV+a4EnUeg6An48phGGuN8HGBTtQ3lpe6CODT1Jd3R3JIsEO3VlQNWWwvtg/FD5FsLXAXzDKQGVzf+GeBuklrtxXE/UOq8e27ANdgmihgrEF0Zlccza6kUJgBTwzV1Cp83zG4TJU548hlWxppR2g/9S2jzp+mAiL2crSmfzp8SlYOzleDPsozfr+5czZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:00:04.6040 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2b51706f-555c-417b-6072-08df13ea0b92 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000207.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8663 Content-Type: text/plain; charset="utf-8" Prepare for SEV-TIO support as it is going to equal or bigger than the existing sev_guest.c which is already 700 lines and keeps growing. No behavioural change expected. Signed-off-by: Alexey Kardashevskiy --- drivers/virt/coco/sev-guest/Makefile | 2 +- drivers/virt/coco/sev-guest/sev-guest.h | 16 ++++++++++++++++ drivers/virt/coco/sev-guest/{sev-guest.c =3D> core.c} | 10 ++-------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/virt/coco/sev-guest/Makefile b/drivers/virt/coco/sev-g= uest/Makefile index 63d67c27723a..a8eb28b6736e 100644 --- a/drivers/virt/coco/sev-guest/Makefile +++ b/drivers/virt/coco/sev-guest/Makefile @@ -1,2 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_SEV_GUEST) +=3D sev-guest.o +obj-$(CONFIG_SEV_GUEST) +=3D core.o diff --git a/drivers/virt/coco/sev-guest/sev-guest.h b/drivers/virt/coco/se= v-guest/sev-guest.h new file mode 100644 index 000000000000..b2a97778e635 --- /dev/null +++ b/drivers/virt/coco/sev-guest/sev-guest.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef __SEV_GUEST_H__ +#define __SEV_GUEST_H__ + +#include +#include + +struct snp_guest_dev { + struct device *dev; + struct miscdevice misc; + + struct snp_msg_desc *msg_desc; +}; + +#endif /* __SEV_GUEST_H__ */ diff --git a/drivers/virt/coco/sev-guest/sev-guest.c b/drivers/virt/coco/se= v-guest/core.c similarity index 99% rename from drivers/virt/coco/sev-guest/sev-guest.c rename to drivers/virt/coco/sev-guest/core.c index 935537a41469..98f698809720 100644 --- a/drivers/virt/coco/sev-guest/sev-guest.c +++ b/drivers/virt/coco/sev-guest/core.c @@ -27,19 +27,13 @@ #include =20 #include -#include + +#include "sev-guest.h" =20 #define DEVICE_NAME "sev-guest" =20 #define SVSM_MAX_RETRIES 3 =20 -struct snp_guest_dev { - struct device *dev; - struct miscdevice misc; - - struct snp_msg_desc *msg_desc; -}; - /* * The VMPCK ID represents the key used by the SNP guest to communicate wi= th the * SEV firmware in the AMD Secure Processor (ASP, aka PSP). By default, th= e key --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012029.outbound.protection.outlook.com [40.107.209.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9F131385D69; Wed, 16 Sep 2026 12:01:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560073; cv=fail; b=IBV3frSoMQQ50UsK4BV9VOEq5lOlm5I+TRrQ0bl9onoZF9T/Ip9riZgSPQslx++HoBS4RQH9N+66aPMFQf04n6GSLgkTTxX9eOTO2PyjF6h7bp902iXXY9phcMsNWMf4jvoy8Z3CDcaHurteTmsFjzkdsjNFZuqlZV6rCZaAics= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560073; c=relaxed/simple; bh=btRpV65iUqq3zBRmo0PustVy5mpGT+ycWnwNnPDwDkM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=F6Bze+Xwkr+X738/mHzz3VpJAeai1EA+UyPziiOuvTP1N5GwH3EoD2DL1C11Aj10HixviiUyFHVyJtaVSq86RP2uVdb9NasH4K1GH9vGf2+mOQVt/TQk5ESevm5YJg1odYhesO9VaPo6mfGnbFknuQfncoYH0F8RbmzcFEe7rpI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=tAK/ysYq; arc=fail smtp.client-ip=40.107.209.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="tAK/ysYq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RysGZKMHs1epu977SrAA1JJSXiIjQsbitUAUzo0og631gjBBRGn2BjxwjMCWcLdW9BsWVbm0Un2UWcNH5lE4IaOSolB+EkLLL8y2QC6InyHSCVH8JjNHWIpV/7BUTovPbEJnD7mVpQRQNLEHc8NGPHKTkozR+hormCPiq7qcpKgUF9ntpa0wTdJrnvqkVfL2LQAUffw4syw5+2lkQTDAErjXLyOf0hMFBwydmsV820C42XeGwt5YwL64AxB5caus6zS5j6nidzX9qAtb/5kccD2ijd+JMZACa8CX7RLp2vr6/GItAGOH+HS4AqSNrMwA18UolsJq2Z4l4JM/wgsoiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=dA9IhLE51D9NYfND88bqQhl20dii5Ckm+YGWHKm39+w=; b=Zq0s1qpS2T2DBAuVG1kAZEK2avJylW2WibH619MTsPJcnmCtsy1p2I1ivYzWdNAhUd5neykHRhgupx2s/Y/JvUhW8/IYB16p0wipHiXVW+9efx5+IxkXcL2HtMZ1R8vdNDDp6ZzjPSoXYbwziqKk1+1JJOG2NhcAatzs/Zg/c3y02nnp1NjdPLp2UJAcxfugXovube426MkdH85A+meTpKT/FjzKXkiDvbMhda9Bgkqb/IrtggNSTMnaQAMb1vdTZlFzcOAJUdISU6JFE1SCbpzE9wik9Usi7b5LGY2ahxnVtfJunrT8l9Ypo3DQBW1JfoVcadkhf+whT9WGqV7WZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dA9IhLE51D9NYfND88bqQhl20dii5Ckm+YGWHKm39+w=; b=tAK/ysYqFM0Y9x2ZqU5FZKr3ii9y+n+d3OlTvslr4zPgMTQ/QxQBNp5eDczxHclEBLKTBi7+YVb+89H49gjSJ8nuWbfMQQb/vKu1imImgR00hozdC6mQ2b97US6CJSaqjungVhFJjkw/Jne+utrpAr9Lj6257hszIYPZukzEU2Y= Received: from BY3PR05CA0060.namprd05.prod.outlook.com (2603:10b6:a03:39b::35) by PH8PR12MB7206.namprd12.prod.outlook.com (2603:10b6:510:226::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Wed, 16 Sep 2026 12:00:55 +0000 Received: from SJ5PEPF00000208.namprd05.prod.outlook.com (2603:10b6:a03:39b:cafe::43) by BY3PR05CA0060.outlook.office365.com (2603:10b6:a03:39b::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.9 via Frontend Transport; Wed, 16 Sep 2026 12:00:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000208.mail.protection.outlook.com (10.167.244.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 12:00:53 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 07:00:23 -0500 From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 13/17] x86/sev: Pass HV features to sev-guest device via platform data Date: Wed, 16 Sep 2026 21:51:53 +1000 Message-ID: <20260916115159.1938195-14-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000208:EE_|PH8PR12MB7206:EE_ X-MS-Office365-Filtering-Correlation-Id: a5d7f197-52a1-412b-0589-08df13ea2869 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|1800799024|82310400026|36860700016|32650700020|6133799003|18002099003|22082099003|10067099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: ggHAuYoxRsyDmpK7PPMyGhSXUVaxMF5B6QiwogeqTKeq8nrUfoGbiuHNraN3dkd0skkFA3zEvpk+aJnVn1HM6Jq20t56aRiGcpH2o0cXLweg0liKmiDcCC0rVTLVDHw4zu0r5TqyXPV0r1wWtMiMs1/Irbo7Nfa6QDPUtnkUGtLIwNkNgcyeCTpUK90LpQ6qZx7P9ESt9G85MtUYrZLY7RfJ0gid8yc/pnrWXBcO+mQK5o2S5b7YhtmRIDgvztr55XrEh67vlroLgrNb8jaYr8nDMz4i/9lByCpQdb8yQy/5NvY556JdFYDckQVfFZI2EE58KtUVYUcuccC2dtXmn0VRjQ1R67mNN1M1TQ1AGf0mdo1JmD1iSqgrgeONVkGWhNHvACyMuymSAv3ODDMMoQFLYkLE64NgcdAmHWnBTTrLWTajZCIk6ab/c7FKNX/qohLNMdzlwlZVWHjClgupBMitwAspZw2ZsvbTVeCLcjVVRTx6nmWmM+mnCK1M1m0gYtN34UqUkVnyU13gu5hdjshHC6Y8qotNQMLqVVM/aMxuBIzK6oYFKFNMirClvOi9DljNzBUDiHa93ScnhQhL24WJIy4czyUnL7X+4c3NSoj3fn+TF9i5jKlmOtlFxBDjRVI5c2PokHHhJoP1BvEr3EHgaPtjCbeP96Q3CO9/FQ1p6QHskScpLi4OdNF500oQ+7BIGtxXXQ6/VNPe/nAfsg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(1800799024)(82310400026)(36860700016)(32650700020)(6133799003)(18002099003)(22082099003)(10067099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5VNspuapkH17wbM+rVXflo4XP8xHnthNl+oOZFPFwbu0ugA4FoP8rAAUVJs6Yka2Pf9TSkZj8jDB29CK112ociHjGt5B00jAIadlkGTdc2UI8GMXYt1VAeMUUb9rwBk/stqu34Adiy3P+T4PB9eMdUYUn3yiLdaPs4ogEouoY829E5R2JUSrc4IFcPwjvID1T1VQnqBeoAkvC1D+na+ouWQLZxfoeQGeuOcqF+t+YyAZnPqe18nMmY1Z8bLPTs3psdy259oc24hf1xtUyjag9UpQQjQPxYFPD6njODKts36lplHDLXD9rIosqr1OeZ74O8VI8Z1SbXkE9wuewkr4EEKRq0wMQ2nOLq9AW5ex0ZCC2BRhFwfJzrC8XLCib2BFQxENnEquSWrDi2eR7wEJZ/Y8ZNN7UyQLJbqXj9h2mdsKjd55xNr0uBVojEztnq9l X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:00:53.0122 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a5d7f197-52a1-412b-0589-08df13ea2869 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000208.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7206 Content-Type: text/plain; charset="utf-8" The SEV HV advertises supported options via GHCB, the guest stores bitmask in the SEV core. The sev-guest device is a user visible platform device (/dev/sev-guest) which provides the interface to communicate with the HV via GHCB. It may choose to limit the functionality depending on what is available. The first user is going to be SEV-TIO which is going to trigger creation of "tsm" folders in the PCI sysfs but only if GHCB advertised such support. This should cause no behavioural change. Signed-off-by: Alexey Kardashevskiy --- arch/x86/coco/sev/core.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index cc292d7c6fd1..5b912f42f493 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -1381,11 +1381,6 @@ static int snp_issue_guest_request(struct snp_guest_= req *req) return ret; } =20 -static struct platform_device sev_guest_device =3D { - .name =3D "sev-guest", - .id =3D -1, -}; - static struct platform_device tpm_svsm_device =3D { .name =3D "tpm-svsm", .id =3D -1, @@ -1393,10 +1388,17 @@ static struct platform_device tpm_svsm_device =3D { =20 static int __init snp_init_platform_device(void) { + struct platform_device *dev; + if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) return -ENODEV; =20 - if (platform_device_register(&sev_guest_device)) + dev =3D platform_device_register_data(NULL, "sev-guest", -1, + &sev_hv_features, + sizeof(sev_hv_features)); + if (IS_ERR(dev)) + return PTR_ERR(dev); + if (!dev) return -ENODEV; =20 if (snp_svsm_vtpm_probe() && --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789560135; cv=pass; d=zohomail.com; s=zohoarc; b=mwRnEZqHcCjU3gkTjHWKwWq+v8AZeP8OLvPeOReMY7iJaj85T0ps0lugANRmiesw7CJeM2maSTBENx9ngQht87vWuut+7xngGf1pU1rqfyM+byIoeRvGeVbUVZlIqF2otURTBRkC73qt8iIXC0IUKIrw0xqNFlaUIsUL9jN9BgM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789560135; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=m5Wn2u7LMPCPQqnkaKjK7qt1ozlCRrR1eh6v97NBG5s=; b=LdFLtDC0Shi8JCBsK8+0C550LPQ56CjwMXP3ACD0/Rq4+OoMZw9OM4E4b+/JKme80W0vOvIr0bJYHE4QcZq6s9Ax88iuC7TrG7aVgQ0IqnsHxMUxgaopZzWpLsYmwSXIaBclQZ7fpXu2l/cxildbfacetCpTJrO/Ry+iJ8mZGHQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789560135972884.5742365599281; Wed, 16 Sep 2026 05:02:15 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1422987.1648297 (Exim 4.92) (envelope-from ) id 1x6oKx-0006m9-JW; Wed, 16 Sep 2026 12:02:03 +0000 Received: by outflank-mailman (output) from mailman id 1422987.1648297; Wed, 16 Sep 2026 12:02:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oKx-0006m2-Gs; Wed, 16 Sep 2026 12:02:03 +0000 Received: by outflank-mailman (input) for mailman id 1422987; Wed, 16 Sep 2026 12:02:02 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oKw-0006lg-5j for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 12:02:02 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oKv-004eQD-IQ for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 14:02:01 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa852c-8faa-0a2a0a5109dd-0a2a4507cdc0-46 for ; Wed, 16 Sep 2026 14:02:00 +0200 Received: from [52.101.57.50] (helo=BN8PR05CU002.outbound.protection.outlook.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa8537-b4ea-0a2a45070019-346539324613-3 for ; Wed, 16 Sep 2026 14:02:00 +0200 Received: from SJ0PR05CA0076.namprd05.prod.outlook.com (2603:10b6:a03:332::21) by MN0PR12MB5860.namprd12.prod.outlook.com (2603:10b6:208:37b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.11; Wed, 16 Sep 2026 12:01:35 +0000 Received: from SJ5PEPF00000209.namprd05.prod.outlook.com (2603:10b6:a03:332:cafe::8c) by SJ0PR05CA0076.outlook.office365.com (2603:10b6:a03:332::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.6 via Frontend Transport; Wed, 16 Sep 2026 12:01:35 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000209.mail.protection.outlook.com (10.167.244.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 12:01:35 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 07:01:11 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ez46YkTXVNPBaIsUDadQp2HbzH2MzSUTArP8XRKzrau9uH0KazSMpiFMJZ490AM5RobEp4q9wt2iGXMEqV57xqQ+7WNBr4fQGROO8j5yxCaL+8MNG//M8krALapxAMwhH0SHA7PhBc8BE4SSX8Gg0OXxj1uSPdPElVL0l4smWPJNuUUi82ixmSnYE3t2E0nNUcMhb1jyWUad1pBSjYrqdnXzQZ9OGeJk0LuHacrJV/l7JM+tMqyuwog0xwrnbxr92smLbFOpUWBAHJ0S6F7Z0UoYA18POj44sijrJP+kH/+UbdPpNP/1PIRKMvGs1DUhohi4AWy+05VycuHa+hrnqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=m5Wn2u7LMPCPQqnkaKjK7qt1ozlCRrR1eh6v97NBG5s=; b=dC4kPfCKMTsVvumw/AfwQJbkmA2qPNO9VhXvprucbnf+ClPy5GBqXj/tV0VDOf2g5yDmU0u3kPQdc/dBZ+tGAxSgry0KDbdk+UozBMtFTc4UVpv2hcxoxmcET0BtrW7p8YWVLeN2EMmJlBve0UzZsoImvYJ+T5uNcQro5PpgqhFTmVQfjUwK/KL/AxVBiCpG9LXMMX9WFxySQRqdg242zGeeUz+Ol/ak432vVMKWeabLzmlQDu4xGdWvridNCNHuqHZ40OGroIk/DF1zfd09DMAuWyMVZ5Fzr4n93OjBe3DrxRsxCXYA/8WmVCNSJpJOx+EsFYGqhMltn22NgCGadw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m5Wn2u7LMPCPQqnkaKjK7qt1ozlCRrR1eh6v97NBG5s=; b=RpT1pMU0oCMmamH88JBb2YcpTKg9WPNT5UC213Hyh3uJ2ZzAdSDTiHve1Mje7l3BusNT0TkBooD/4Qbrpjx4TnAppNG2+xKugKTq8jTIevcVjmt4MUN1IIdPrcPPPPxMNpDnuPscIwCJ0SAu8MamfhuIX1GeizOLAUYAiqFd8+Y= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 14/17] x86/sev: Add GHCB calls for SEV-TIO Date: Wed, 16 Sep 2026 21:51:54 +1000 Message-ID: <20260916115159.1938195-15-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000209:EE_|MN0PR12MB5860:EE_ X-MS-Office365-Filtering-Correlation-Id: 43b471b3-312e-4f11-3c46-08df13ea4171 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|32650700020|23010399003|7416014|376014|10067099003|3023799007|6133799003|20052099010|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: /5G+nkTNRMJNQGSuiS6RRZKhS/KhosBx1ar6A3U+Yen4hddWoqMH8sZ3wb207pdmlf0+n/OzPd/tDMYtXqhUUSVV1cPUQ8F0erZvNy6rM/w6QV8wI/3i7R92YCzdRuxztFT05eYuD1VphA9OBQ1iM1Cw5YjQnrR1cQhe1GMX/T7+lB7WgHV2DFFqnZePUqxNodAa/Imy8E4w+nNI2OXHRKchZyt+I95+JXZj8Ww4qsCEvsPhzpEcM/JFQgSTpiSrjROv38LiYhzlpTW+O41JTbJPqj4GWBLFT5esxRrw136PSiIhRppB/qqNKj6DkLGUjpO7nQK3klmH6NDYQ8Uy9OuJSuRLay4fy8FwEOCrI54/BjnWWiHslCVUMoD7pHg8/sn4WcUc9MnM7rS1MoD+Tsic0kR4DsMjM8I8JQ4x7BjAv1Tob2/14Kvxoh82LRwbhsZrIZuhuKF2Q8B2nCJSiN+dbS6FAY1W7m/ULAGzT2Ey6rt4cJtRxkvAtEeH62ozmZIBcxg4Q5y5JQL93YMM/F20OqMGA+v2k89I8WiSaEh7Z0hvlHQ/1anLCNqI2jbHJ3atWpbmXAbPazrzonBx9HP6m8/vlg4rQs3J1QlaGF6HYKZaZM0Z6YsuplxSNzGoR3K9NIyLylTwMPtZE3FjYtWqp/1oCWdduhO0VRo7g1XoMXRTWtgFYjZon5qA+8wfMD30YexillBF9Jp4aRT7Sw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(32650700020)(23010399003)(7416014)(376014)(10067099003)(3023799007)(6133799003)(20052099010)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KGWqrxMpevRTUyLVG3M4M4v9Z+GrPszOWDRjjAtKr8gD+oIKekSZU1I1NEkcyDv7jCtK/HW59j+Q01lJZ5+zIvQt1Yhwllk/712KIEfEkfOUWdb9QDW/f1PSxKSNWqwa2Pogq0I/jKyYueKaGIv/XT+r1HVArzdQkAJ9qVWcdO8aFyoGyd/UNzEmgh0Tn/FDwDD2A8AT+3wBP0YhiGrwfhBW46lVveiCmlm6+h+mUnz3dFWiK9l4XDhlwlulUqJFOWY+5qRerR47gP50Op8Fn9lkliy0er94KZgjh1e2zYnNzdsI6FqJ8zf7rDPycm/1ljgPBc1U3QKNG8CeLDr9L3ctPipWjYJoyohqqivWF7/UVU1ZG0BjMPaUwVLmS9cN0G664BHbQ3K+kBgAKtcvax+3dNsK0RA8i0eVE/WZXPRECrI/mCBS5Waf/5k8hME0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:01:35.0080 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 43b471b3-312e-4f11-3c46-08df13ea4171 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000209.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5860 X-purgate-ID: tlsNG-ef75cf/1789560120-A7ED6AE4-7EA0D2D8/0/0 X-purgate-type: clean X-purgate-size: 7346 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789560138268158500 Content-Type: text/plain; charset="utf-8" SEV-TIO is a PSP protocol allowing PCI pass through of trusted devices (TDI =3D=3D TEE Device Interface) to an SNP VM. The VMM advertises the support via HV_FEATURES and implements new calls: 1) TDI operation: the host executes on the guest behalf: - TDI bind/unbind to/from the SNP VM in the PSP; - TDI start/stop which translates to TDISP interface start/stop. 2) TIO guest request for an encrypted communication channel between the SNP VM and the PSP, it follows the existing Extended Guest Request pattern to read device evidence: - get TDI status; - validate MMIO ranges (a variant of the PVALIDATE instruction for MMIO RMPs); - configure sDTE (a secure IOMMU descriptor). Extend snp_req_data to pass more parameters. Signed-off-by: Alexey Kardashevskiy --- arch/x86/include/asm/sev-common.h | 1 + arch/x86/include/asm/sev.h | 5 +++ arch/x86/include/uapi/asm/svm.h | 40 +++++++++++++++++++ arch/x86/coco/sev/core.c | 42 ++++++++++++++++++++ 4 files changed, 88 insertions(+) diff --git a/arch/x86/include/asm/sev-common.h b/arch/x86/include/asm/sev-c= ommon.h index 01a6e4dbe423..ff763c3c5d63 100644 --- a/arch/x86/include/asm/sev-common.h +++ b/arch/x86/include/asm/sev-common.h @@ -137,6 +137,7 @@ enum psc_op { #define GHCB_HV_FT_SNP BIT_ULL(0) #define GHCB_HV_FT_SNP_AP_CREATION BIT_ULL(1) #define GHCB_HV_FT_SNP_MULTI_VMPL BIT_ULL(5) +#define GHCB_HV_FT_SNP_SEV_TIO BIT_ULL(7) =20 /* * SNP Page State Change NAE event diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index 9e7a077c445d..89aaccb053ba 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -149,6 +149,9 @@ struct snp_req_data { unsigned long resp_gpa; unsigned long data_gpa; unsigned int data_npages; + unsigned int guest_rid; + unsigned long npages; + unsigned long param; }; =20 #define MAX_AUTHTAG_LEN 32 @@ -597,6 +600,8 @@ static inline void sev_evict_cache(void *va, int npages) } } =20 +int sev_tio_op(u32 guest_rid, unsigned int op, u64 *fw_err, u64 *tdi_id); + #else /* !CONFIG_AMD_MEM_ENCRYPT */ =20 #define snp_vmpl 0 diff --git a/arch/x86/include/uapi/asm/svm.h b/arch/x86/include/uapi/asm/sv= m.h index 010a45c9f614..93597ad492bf 100644 --- a/arch/x86/include/uapi/asm/svm.h +++ b/arch/x86/include/uapi/asm/svm.h @@ -122,6 +122,44 @@ #define SVM_VMGEXIT_SAVIC_REGISTER_GPA 0 #define SVM_VMGEXIT_SAVIC_UNREGISTER_GPA 1 #define SVM_VMGEXIT_SAVIC_SELF_GPA ~0ULL +#define SVM_VMGEXIT_SEV_TIO_GR 0x80000020ull +#define SVM_VMGEXIT_SEV_TIO_GR_INFO_STATE BIT(0) +#define SVM_VMGEXIT_SEV_TIO_GR_INFO_CERTS BIT(1) +#define SVM_VMGEXIT_SEV_TIO_GR_INFO_MEAS BIT(2) +#define SVM_VMGEXIT_SEV_TIO_GR_INFO_REPORT BIT(3) + +#define SVM_VMGEXIT_SEV_TIO_GR_SDTE_VALIDATE BIT(0) +#define SVM_VMGEXIT_SEV_TIO_GR_SDTE_VTOM GENMASK_ULL(51, 21) + +/* + * TIO_GUEST_REQUEST's MMIO_VALIDATE_REQ/MMIO_CONFIG_REQ encoding for MMIO= in RDX: + * + * T....... ....GGGG GGGGGGGG GGGGGGGG GGGGGGGG GGGGGGGG GGGG.... ........ + * Where: + * G - guest physical address + * T - TEE + */ +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_GFN(r) (((r) & 0x000FFFFFFFFFF000= ULL) >> PAGE_SHIFT) +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_RESERVED(r) ((r) & 0x7FF0000000000FFFU= LL) +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_PRIVATE(r) (!!((r) & BIT(63))) + +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_NUM(r) ((uint32_t)((r) >> 32)) +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_ADDR(r) ((uint32_t)((r) & 0xFFFFFF= FF)) + +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_MK_VALIDATE(start, private) \ + ((SVM_VMGEXIT_SEV_TIO_GR_MMIO_GFN(start) << PAGE_SHIFT) | \ + ((private) ? BIT(63) : 0)) + +#define SVM_VMGEXIT_SEV_TIO_OP 0x80000021ull +#define SVM_VMGEXIT_SEV_TIO_GR_MMIO_MK_NUM_BDFN(n, bdfn) (((uint64_t)(n) <= < 32) | (bdfn)) + +#define SVM_VMGEXIT_SEV_TIO_OP_PARAM(guest_id, action) ((u64)(action)<<32|= (guest_id)) +#define SVM_VMGEXIT_SEV_TIO_OP_ACTION(exitinfo1) ((exitinfo1)>>32) +#define SVM_VMGEXIT_SEV_TIO_OP_GUEST_ID(exitinfo1) ((exitinfo1) & 0xFFFFFF= FF) +#define SVM_VMGEXIT_SEV_TIO_OP_BIND 0 +#define SVM_VMGEXIT_SEV_TIO_OP_UNBIND 1 +#define SVM_VMGEXIT_SEV_TIO_OP_RUN 2 +#define SVM_VMGEXIT_SEV_TIO_OP_STOP 3 #define SVM_VMGEXIT_HV_FEATURES 0x8000fffdull #define SVM_VMGEXIT_TERM_REQUEST 0x8000fffeull #define SVM_VMGEXIT_TERM_REASON(reason_set, reason_code) \ @@ -245,6 +283,8 @@ { SVM_VMGEXIT_GUEST_REQUEST, "vmgexit_guest_request" }, \ { SVM_VMGEXIT_EXT_GUEST_REQUEST, "vmgexit_ext_guest_request" }, \ { SVM_VMGEXIT_AP_CREATION, "vmgexit_ap_creation" }, \ + { SVM_VMGEXIT_SEV_TIO_GR, "vmgexit_sev_tio_guest_request" }, \ + { SVM_VMGEXIT_SEV_TIO_OP, "vmgexit_sev_tio_op" }, \ { SVM_VMGEXIT_HV_FEATURES, "vmgexit_hypervisor_feature" }, \ { SVM_EXIT_ERR, "invalid_guest_state" } =20 diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 5b912f42f493..ed0e4546d5e5 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -104,6 +104,37 @@ static unsigned long snp_tsc_freq_khz __ro_after_init; DEFINE_PER_CPU(struct sev_es_runtime_data*, runtime_data); DEFINE_PER_CPU(struct sev_es_save_area *, sev_vmsa); =20 +int sev_tio_op(u32 guest_rid, unsigned int op, u64 *fw_err, u64 *tdi_id) +{ + struct ghcb_state state; + struct es_em_ctxt ctxt; + struct ghcb *ghcb; + int ret; + + /* __sev_get_ghcb() needs IRQs disabled because it uses per-CPU GHCB. */ + guard(irqsave)(); + + ghcb =3D __sev_get_ghcb(&state); + if (!ghcb) + return -EIO; + + vc_ghcb_invalidate(ghcb); + ret =3D sev_es_ghcb_hv_call(ghcb, &ctxt, SVM_VMGEXIT_SEV_TIO_OP, + SVM_VMGEXIT_SEV_TIO_OP_PARAM(guest_rid, op), 0); + + *fw_err =3D ghcb->save.sw_exit_info_2; + if (*fw_err) + ret =3D -EIO; + + if (!ret && op =3D=3D SVM_VMGEXIT_SEV_TIO_OP_BIND && tdi_id) + *tdi_id =3D ghcb_get_rcx(ghcb); + + __sev_put_ghcb(&state); + + return ret; +} +EXPORT_SYMBOL_GPL(sev_tio_op); + /* * SVSM related information: * When running under an SVSM, the VMPL that Linux is executing at must = be @@ -1345,6 +1376,11 @@ static int snp_issue_guest_request(struct snp_guest_= req *req) if (req->exit_code =3D=3D SVM_VMGEXIT_EXT_GUEST_REQUEST) { ghcb_set_rax(ghcb, input->data_gpa); ghcb_set_rbx(ghcb, input->data_npages); + } else if (req->exit_code =3D=3D SVM_VMGEXIT_SEV_TIO_GR) { + ghcb_set_rax(ghcb, input->data_gpa); + ghcb_set_rbx(ghcb, input->data_npages); + ghcb_set_rcx(ghcb, ((uint64_t)input->npages << 32) | input->guest_rid); + ghcb_set_rdx(ghcb, input->param); } =20 ret =3D sev_es_ghcb_hv_call(ghcb, &ctxt, req->exit_code, input->req_gpa, = input->resp_gpa); @@ -1354,6 +1390,8 @@ static int snp_issue_guest_request(struct snp_guest_r= eq *req) req->exitinfo2 =3D ghcb->save.sw_exit_info_2; switch (req->exitinfo2) { case 0: + if (req->exit_code =3D=3D SVM_VMGEXIT_SEV_TIO_GR) + input->param =3D ghcb_get_rdx(ghcb); break; =20 case SNP_GUEST_VMM_ERR(SNP_GUEST_VMM_ERR_BUSY): @@ -1366,6 +1404,10 @@ static int snp_issue_guest_request(struct snp_guest_= req *req) input->data_npages =3D ghcb_get_rbx(ghcb); ret =3D -ENOSPC; break; + } else if (req->exit_code =3D=3D SVM_VMGEXIT_SEV_TIO_GR) { + input->data_npages =3D ghcb_get_rbx(ghcb); + ret =3D -ENOSPC; + break; } fallthrough; default: --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789560163; cv=pass; d=zohomail.com; s=zohoarc; b=gn3kPBhKwLbc1Q1icZRkOSm0u619fBgCDK95K9expz4hNxzBVIVAFxrG5yOrDHuJfsYm/q9YQ/dNC1m1z6hsh1+l3nFghcYIUZFeT2U7lmhz6p2XAF27MecvBrvflADqozSyVc8rCUhF5VpnGyWhjeJNGFa0LVGjQC4Lb7CFXhU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789560163; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=fWoH/Llw6YUXkVi9P/+pg2Cd/4z3RJ6aV+gYVYAAcRU=; b=B815zOxMjxW7fmsGVsIEODHuSJ7nxEuP7WWsFR37NPOMc16MFBjEfBtn2FoSsK11Y4N0Yk8E9GWWBEhA26mAvdeC4dOWP3K2zWkeIVxynGPQN/HtuM9FTFs+at6gt20ZLCv6wbTFw+DRSb08qZqln/moFdQMvHtX5lJbUyx+Ejo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789560163619682.0194995103424; Wed, 16 Sep 2026 05:02:43 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1423000.1648307 (Exim 4.92) (envelope-from ) id 1x6oLK-0007BI-Uj; Wed, 16 Sep 2026 12:02:26 +0000 Received: by outflank-mailman (output) from mailman id 1423000.1648307; Wed, 16 Sep 2026 12:02:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oLK-0007B9-Rz; Wed, 16 Sep 2026 12:02:26 +0000 Received: by outflank-mailman (input) for mailman id 1423000; Wed, 16 Sep 2026 12:02:25 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oLJ-0007Ak-Nc for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 12:02:25 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oLJ-00GbTK-3w for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 14:02:25 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa8545-bab6-0a2a0a5309dd-0a2a450c8698-38 for ; Wed, 16 Sep 2026 14:02:24 +0200 Received: from [52.101.57.31] (helo=BN8PR05CU002.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa854e-f479-0a2a450c0019-3465391fd612-3 for ; Wed, 16 Sep 2026 14:02:23 +0200 Received: from BY1P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::14) by DS4PR12MB248322.namprd12.prod.outlook.com (2603:10b6:8:509::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 12:02:12 +0000 Received: from SJ5PEPF00000207.namprd05.prod.outlook.com (2603:10b6:a03:59d:cafe::97) by BY1P220CA0001.outlook.office365.com (2603:10b6:a03:59d::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.11 via Frontend Transport; Wed, 16 Sep 2026 12:02:11 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000207.mail.protection.outlook.com (10.167.244.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 12:02:11 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 07:01:48 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t8eW2LZEeLsU5jzpxmRNjLBvYNB9HJjnxAyywrycjmnbuC24mWlxMxocCel1hugJN4AUupJWDJgVSyJzWzoCX4/pU46IjkjUVNdxrno6uyb+z2qR2NNRxZ8qH8L0PtABQKeEBkn+SjuMB6Wm/EcYEni8RNHATQFQFhy/sni/UuHYvPIYoKZOfWxIG9ZXZ3q635KKVUl5OOoRTEHjClYtc6A/npwLR6oVNEMqT3fsQX5W2kvscbwhD4xAClMprr79hbM7OgScH0obY8Fx/pNwgpz83JpfbPAopW5v52T1V/DC/ACX8ot3jvUne5UADw8yYWZ17d/VPKGQ9mpB7vjSbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=fWoH/Llw6YUXkVi9P/+pg2Cd/4z3RJ6aV+gYVYAAcRU=; b=hMkmTKVXm9niBUWx2oPRBhZNg8twP2kwB5XiO8t05lU0EP6ZXq0ajDmpl8R3ao1gX+VZ4pPdyOOIL2UKs5vlBJeiqZFVVPZ3XqGZawdPXGcVMCXd+ByEAGMYdW1TFYFvy87oKy1DIuvSDKsg7Rxsw/yRfOKlWgipq5e1AyMGY3XAUJ+PFshOIebUYvktTHQf4zTaStqHQMPQIvqx7GNN0cFEyenyUnM0Eu5OdoyylWRBnDhq4VhtbCHlvpUchvRbg2Hwdk34eB/nOPYKSw5AQp+k8thR9Rm3BEFrzG5eUcuYnPDMmXkS8HG7Ywa5AJVqW1SE/QZkkaTm1Ljvl16TFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fWoH/Llw6YUXkVi9P/+pg2Cd/4z3RJ6aV+gYVYAAcRU=; b=lz4uBZzkq+4GluEyz4oPAFXtUpVJwIPB1Z4Pi69SWOSJJcxY2nmirLEPj3jSXn39gQop7QHlYljA0TwzjJlf0suqyINmyDle7sh/5g91a+FSbsAmoWmQwwBnR6fPI0hjd2FnRMAZrbSa4IcPQbpp7ZPiHRBsKnqKm7bM1bBcdjs= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 15/17] x86/sev: Implement guest TSM driver for SEV-TIO (phase2, DMA) Date: Wed, 16 Sep 2026 21:51:55 +1000 Message-ID: <20260916115159.1938195-16-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000207:EE_|DS4PR12MB248322:EE_ X-MS-Office365-Filtering-Correlation-Id: 04cd4172-76ca-459e-f814-08df13ea574c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|36860700016|1800799024|32650700020|82310400026|23010399003|7416014|10067099003|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: fUqLwP2yBeGwzHtiDcoNUQWtntKDgz8U8C25nqzqoH2MPw/rY1tOggSZ+v9VCWmr7NYblHy8WR/0Ct3cmbUgXyRiLYJOR0ufnlIDIe5ba9PIQT78mB8Hcif0UmdhR2Ge1kN4GcXGWlNWrQM+faCwl4gz+3WpdBHg6/yh3Ns59rM+SWtsH5M2cABjl4G87VuSRLYXQjyDFbT+BNehAs2POk6DDZNQkaz6QLBxnG2aNM+GSrlA31RMXxpLA4jD10Pa+9vPGPQOuPmU9ZtSb3gUlw8JuMQPUnVoIRdw2JS6yMnsUk7bBLGBCSFnX8z4Q1OLu6QLfdXLLaJ5k/7KFuiE2Qz0ear1aYyXia/PRJcGW8eSeAmiOzjw6IYGDHWELAi+I/07k1IdD2Ij72KerVCygCjsm/BjYhctwVC5phAeS0RKEuQWKor3Dkw5RAQ7taxgT/h6VvtZIOcx5aNT2AaCcAU7wS+gDt6PMP8p53Ai2OgUoeRSDZWwvf03VpSCTs+4JRd9KkUPKI3vc1C3iJ1ye2toJGCPNPcPz8fYWzz7lxWQP7XTB6OCJHZmLmQ+s0WajS7fIYUhjZyk/YGTgrYV5JxfZ2VDSjYC7R0tqjN63JghHVrecj/GqDCPWZXuaSUnQrq0AU/KPCLwsHEIEBC7fdCo0vvDzSD1pBe18cUaw5GQ6X+q4U/wfYPOPkscStdBLCjaX38cgupFrhidHOzoWw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700016)(1800799024)(32650700020)(82310400026)(23010399003)(7416014)(10067099003)(18002099003)(22082099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gwUS5QlepI1jB9RFz2eYhcIGjvljtIY8qky9Q+KRNfs9t0uqazvIMGtOYEiFlwPgXSP299Vg+7GXppDplxnrxl8KhzpfVTLl7nL/G8fzrL0YLtAU3zgDc2tq4LZyBUjN25O+7XhpKZFJyuBjunYQIZlUpKbteps681NIyuNeXgsHTIu9yVQw85BUurli3THx77HFez2QWV0+4dmsiUwpbp6zVqOTghTQN9f6tOvRVv82jbPF8+2gddvsKXUs2gOEifWhO0aTAJPnk1nNXPRO7YFgcLmfvp/PwzcSkUVYrw5GNbQnS6f32B5Uud9ZAFwtWYNuBc+hKuO6gIZrsf5gDxbU9w7VgqmQzZRZEHl899j09k1/qtZNa3M5qYG/6TAP6YcmFjZL85P1lu5Su6ofeediQUNa9ytdmQA3BHdB4h6EkWZluYv1Wh0vMZRrun0J X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:02:11.6575 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04cd4172-76ca-459e-f814-08df13ea574c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000207.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB248322 X-purgate-ID: tlsNG-d25034/1789560144-020C1A5B-59351F9C/0/0 X-purgate-type: clean X-purgate-size: 14155 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789560166516158500 Content-Type: text/plain; charset="utf-8" Add the guest-side PCI TSM backend for AMD SEV-TIO, wiring the generic pci_tsm framework to GHCB TIO operations and PSP guest requests. Register pci_tsm_ops from sev-guest on probe when TIO GHCB support is present (gated by the tsm_enable module parameter). lock() binds a TDI, constructs a devsec TSM object and transitions to CONFIG_LOCKED; accept() transitions the TDI to RUN and programs the SDTE with vTOM and guest access permissions; unlock() invalidates the SDTE, unbinds the TDI, quiesces DMA and transitions to CONFIG_UNLOCKED. Introduce tio.c with TIO guest-request handling (TIO_MSG_SDTE_WRITE_REQ and related message layouts) and set cc_shared_dma_offset from the configurable tsm_vtom so shared DMA addresses are translated for the hypervisor. Extend asm/sev.h with TIO message types and TDISP SPDM algorithm constants. Build tio.o when PCI_TSM is enabled and select PCI_TSM from SEV_GUEST Kconfig. Signed-off-by: Alexey Kardashevskiy --- drivers/virt/coco/sev-guest/Kconfig | 1 + drivers/virt/coco/sev-guest/Makefile | 3 + arch/x86/include/asm/sev.h | 8 + drivers/virt/coco/sev-guest/sev-guest.h | 4 + drivers/virt/coco/sev-guest/core.c | 14 + drivers/virt/coco/sev-guest/tio.c | 347 ++++++++++++++++++++ 6 files changed, 377 insertions(+) diff --git a/drivers/virt/coco/sev-guest/Kconfig b/drivers/virt/coco/sev-gu= est/Kconfig index a6405ab6c2c3..4255072dfa1a 100644 --- a/drivers/virt/coco/sev-guest/Kconfig +++ b/drivers/virt/coco/sev-guest/Kconfig @@ -3,6 +3,7 @@ config SEV_GUEST default m depends on AMD_MEM_ENCRYPT select TSM_REPORTS + select PCI_TSM if PCI help SEV-SNP firmware provides the guest a mechanism to communicate with the PSP without risk from a malicious hypervisor who wishes to read, diff --git a/drivers/virt/coco/sev-guest/Makefile b/drivers/virt/coco/sev-g= uest/Makefile index a8eb28b6736e..84a8b0dd62cd 100644 --- a/drivers/virt/coco/sev-guest/Makefile +++ b/drivers/virt/coco/sev-guest/Makefile @@ -1,2 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_SEV_GUEST) +=3D core.o +ifeq ($(CONFIG_PCI_TSM),y) +obj-$(CONFIG_SEV_GUEST) +=3D tio.o +endif diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index 89aaccb053ba..375cb5346ec3 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -182,6 +182,14 @@ enum msg_type { =20 SNP_MSG_TSC_INFO_REQ =3D 17, SNP_MSG_TSC_INFO_RSP, + TIO_MSG_TDI_INFO_REQ =3D 19, + TIO_MSG_TDI_INFO_RSP =3D 20, + TIO_MSG_MMIO_VALIDATE_REQ =3D 21, + TIO_MSG_MMIO_VALIDATE_RSP =3D 22, + TIO_MSG_MMIO_CONFIG_REQ =3D 23, + TIO_MSG_MMIO_CONFIG_RSP =3D 24, + TIO_MSG_SDTE_WRITE_REQ =3D 25, + TIO_MSG_SDTE_WRITE_RSP =3D 26, =20 SNP_MSG_TYPE_MAX }; diff --git a/drivers/virt/coco/sev-guest/sev-guest.h b/drivers/virt/coco/se= v-guest/sev-guest.h index b2a97778e635..c823a782739f 100644 --- a/drivers/virt/coco/sev-guest/sev-guest.h +++ b/drivers/virt/coco/sev-guest/sev-guest.h @@ -11,6 +11,10 @@ struct snp_guest_dev { struct miscdevice misc; =20 struct snp_msg_desc *msg_desc; + + struct tsm_dev *tsmdev; }; =20 +void sev_guest_tsm_set_ops(bool set, struct snp_guest_dev *snp_dev); + #endif /* __SEV_GUEST_H__ */ diff --git a/drivers/virt/coco/sev-guest/core.c b/drivers/virt/coco/sev-gue= st/core.c index 98f698809720..8448c123ab1e 100644 --- a/drivers/virt/coco/sev-guest/core.c +++ b/drivers/virt/coco/sev-guest/core.c @@ -45,6 +45,10 @@ static int vmpck_id =3D -1; module_param(vmpck_id, int, 0444); MODULE_PARM_DESC(vmpck_id, "The VMPCK ID to use when communicating with th= e PSP."); =20 +static bool tsm_enable =3D true; +module_param(tsm_enable, bool, 0644); +MODULE_PARM_DESC(tsm_enable, "Enable SEV TIO"); + static inline struct snp_guest_dev *to_snp_dev(struct file *file) { struct miscdevice *dev =3D file->private_data; @@ -668,6 +672,14 @@ static int __init sev_guest_probe(struct platform_devi= ce *pdev) snp_dev->msg_desc =3D mdesc; dev_info(dev, "Initialized SEV guest driver (using VMPCK%d communication = key)\n", mdesc->vmpck_id); + + u64 *sev_hv_features_ptr =3D dev_get_platdata(&pdev->dev); + if (!sev_hv_features_ptr || !(*sev_hv_features_ptr & GHCB_HV_FT_SNP_SEV_T= IO)) + tsm_enable =3D false; + + if (tsm_enable) + sev_guest_tsm_set_ops(true, snp_dev); + return 0; =20 e_msg_init: @@ -681,6 +693,8 @@ static void __exit sev_guest_remove(struct platform_dev= ice *pdev) struct snp_guest_dev *snp_dev =3D platform_get_drvdata(pdev); =20 snp_msg_free(snp_dev->msg_desc); + if (tsm_enable) + sev_guest_tsm_set_ops(false, snp_dev); misc_deregister(&snp_dev->misc); } =20 diff --git a/drivers/virt/coco/sev-guest/tio.c b/drivers/virt/coco/sev-gues= t/tio.c new file mode 100644 index 000000000000..99ff2b9c872a --- /dev/null +++ b/drivers/virt/coco/sev-guest/tio.c @@ -0,0 +1,347 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "sev-guest.h" + +ulong tsm_vtom =3D (2ULL << 40); +module_param(tsm_vtom, ulong, 0644); +MODULE_PARM_DESC(tsm_vtom, "SEV TIO vTOM value"); + +#define tsm_dev_to_snp_dev(t) ((struct snp_guest_dev *)dev_get_drvdata((t)= ->dev.parent)) +#define pdev_to_tdi(p) container_of((p)->tsm, struct tio_guest_tdi, ds.ba= se_tsm) +#define ghcb_tio_sbdfn(pdev) ((pci_domain_nr((pdev)->bus) << 16) | pci_dev= _id(pdev)) + +struct tio_guest_tdi { + struct pci_tsm_devsec ds; + struct snp_guest_dev *snp_dev; + u64 tdi_id; /* Runtime FW generated TDI id */ +}; + +static int handle_tio_guest_request(struct snp_guest_dev *snp_dev, u8 type, + void *req_buf, size_t req_sz, void *resp_buf, u32 resp_sz, + u64 *bdfn, u64 *param, u64 *fw_err) +{ + struct snp_msg_desc *mdesc =3D snp_dev->msg_desc; + struct snp_guest_req req =3D { + .msg_version =3D 2, + .msg_type =3D type, + .vmpck_id =3D mdesc->vmpck_id, + .req_buf =3D kmemdup(req_buf, req_sz, GFP_KERNEL), + .req_sz =3D req_sz, + .resp_buf =3D kmalloc(resp_sz, GFP_KERNEL), + .resp_sz =3D resp_sz, + .exit_code =3D SVM_VMGEXIT_SEV_TIO_GR, + .input.guest_rid =3D 0, + .input.param =3D 0, + }; + int ret; + + if (!req.req_buf || !req.resp_buf) { + ret =3D -ENOMEM; + goto error_exit; + } + + if (bdfn) { + req.input.guest_rid =3D *bdfn & 0xFFFFFFFF; + req.input.npages =3D *bdfn >> 32; + } + req.input.param =3D *param; + + ret =3D snp_send_guest_request(mdesc, &req); + + memcpy(resp_buf, req.resp_buf, resp_sz); + *param =3D req.input.param; + *fw_err =3D req.exitinfo2; + +error_exit: + kfree(req.resp_buf); + kfree(req.req_buf); + + return ret; +} + +struct tio_msg_tdi_info_req { + u64 tdi_id; + u8 reserved[8]; +} __packed; + +enum { + TIO_MSG_TDI_INFO_RSP_STATUS_BOUND =3D 0, + TIO_MSG_TDI_INFO_RSP_STATUS_INVALID =3D 1, + TIO_MSG_TDI_INFO_RSP_STATUS_UNBOUND =3D 2, +}; + +struct tio_msg_tdi_info_rsp { + u64 tdi_id; + u16 status; /* TIO_MSG_TDI_INFO_RSP_STATUS_xxx */ + u8 reserved1[6]; + + u32 meas_digest_valid:1; + u32 meas_digest_fresh:1; + u32 reserved2:30; + + /* These are TDISP's LOCK_INTERFACE_REQUEST flags */ + u32 no_fw_update:1; + u32 cache_line_size:1; + u32 lock_msix:1; + u32 bind_p2p:1; + u32 all_request_redirect:1; + u32 reserved3:27; + + u64 spdm_algos; + u8 certs_digest[48]; + u8 meas_digest[48]; + u8 interface_report_digest[48]; + u64 tdi_report_count; + u64 reserved4; +} __packed; + +struct sdte { + u64 v : 1; + u64 reserved : 3; + u64 cxlio : 3; + u64 reserved1 : 45; + u64 ppr : 1; + u64 reserved2 : 1; + u64 giov : 1; + u64 gv : 1; + u64 glx : 2; + u64 gcr3_tbl_rp0 : 3; + u64 ir : 1; + u64 iw : 1; + u64 reserved3 : 1; + u16 domain_id; + u16 gcr3_tbl_rp1; + u32 interrupt : 1; + u32 reserved4 : 5; + u32 ex : 1; + u32 sd : 1; + u32 reserved5 : 2; + u32 sats : 1; + u32 gcr3_tbl_rp2 : 21; + u64 giv : 1; + u64 gint_tbl_len : 4; + u64 reserved6 : 1; + u64 gint_tbl : 46; + u64 reserved7 : 2; + u64 gpm : 2; + u64 reserved8 : 3; + u64 hpt_mode : 1; + u64 reserved9 : 4; + u32 asid : 12; + u32 reserved10 : 3; + u32 viommu_en : 1; + u32 guest_device_id : 16; + u32 guest_id : 15; + u32 guest_id_mbo : 1; + u32 reserved11 : 1; + u32 vmpl : 2; + u32 reserved12 : 3; + u32 attrv : 1; + u32 reserved13 : 1; + u32 sa : 8; + u8 ide_stream_id[8]; + u32 vtom_en : 1; + u32 vtom : 31; + u32 rp_id : 5; + u32 reserved14 : 27; + u8 reserved15[0x40-0x30]; +} __packed; + +struct tio_msg_sdte_write_req { + u64 tdi_id; + u8 reserved[8]; + struct sdte sdte; +} __packed; + +/* + * Status codes from TIO_MSG_SDTE_WRITE_REQ + */ +enum sdte_write_status { + SDTE_WRITE_SUCCESS =3D 0, + SDTE_WRITE_INVALID_TDI =3D 1, + SDTE_WRITE_TDI_NOT_BOUND =3D 2, + SDTE_WRITE_RESERVED =3D 3, +}; + +struct tio_msg_sdte_write_rsp { + u64 tdi_id; + u16 status; /* SDTE_WRITE_xxx */ + u8 reserved[6]; +} __packed; + +static int tio_tdi_sdte_write(struct pci_dev *pdev, struct snp_guest_dev *= snp_dev, + uint64_t tdi_id, u64 vtom, bool invalidate) +{ + size_t resp_len =3D sizeof(struct tio_msg_sdte_write_rsp) + AUTHTAG_LEN; + struct tio_msg_sdte_write_rsp *rsp __free(kfree_sensitive) =3D kzalloc(re= sp_len, GFP_KERNEL); + struct tio_msg_sdte_write_req req; + u64 flags =3D vtom | (invalidate ? 0 : SVM_VMGEXIT_SEV_TIO_GR_SDTE_VALIDA= TE); + u64 bdfn =3D ghcb_tio_sbdfn(pdev); + u64 fw_err =3D 0; + int rc; + + BUILD_BUG_ON(sizeof(struct sdte) * 8 !=3D 512); + + pci_notice(pdev, "SDTE write vTOM=3D%llx", flags); + + if (!invalidate) + req =3D (struct tio_msg_sdte_write_req) { + .tdi_id =3D tdi_id, + .sdte.vmpl =3D 0, + .sdte.vtom =3D vtom >> 21, + .sdte.vtom_en =3D 1, + .sdte.iw =3D 1, + .sdte.ir =3D 1, + .sdte.v =3D 1, + }; + else + req =3D (struct tio_msg_sdte_write_req) { + .tdi_id =3D tdi_id, + }; + + if (!rsp) + return -ENOMEM; + + rc =3D handle_tio_guest_request(snp_dev, TIO_MSG_SDTE_WRITE_REQ, + &req, sizeof(req), rsp, resp_len, + &bdfn, &flags, &fw_err); + if (rc || fw_err || rsp->status !=3D SDTE_WRITE_SUCCESS) { + pci_err(pdev, "SDTE write failed with rc=3D%d, fwerr=3D0x%llx, status=3D= %x\n", + rc, fw_err, rsp->status); + if (!rc) + return -EFAULT; + return rc; + } + + pdev->dev.archdata.cc_shared_dma_offset =3D invalidate ? 0 : vtom; + + return 0; +} + +static struct pci_tsm *sev_guest_lock(struct tsm_dev *tsmdev, struct pci_d= ev *pdev) +{ + struct tio_guest_tdi *gtdi __free(kfree) =3D kzalloc(sizeof(*gtdi), GFP_K= ERNEL); + u64 fw_err =3D 0, tdi_id =3D 0; + int rc; + + if (!gtdi) + return ERR_PTR(-ENOMEM); + + /* Enabling device tells the HV to register MMIO as memory slots */ + rc =3D pci_enable_device_mem(pdev); + if (rc) + return ERR_PTR(rc); + + rc =3D pci_tsm_devsec_constructor(pdev, >di->ds, tsmdev); + if (rc) + return ERR_PTR(rc); + + gtdi->snp_dev =3D tsm_dev_to_snp_dev(tsmdev); + + rc =3D sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_BIND, &fw_= err, &tdi_id); + if (rc) { + pci_err(pdev, "TDI bind CONFIG_LOCKED failed rc=3D%d fw=3D0x%llx\n", + rc, fw_err); + return ERR_PTR(rc); + } + pci_dbg(pdev, "New TDI ID=3D%llx\n", tdi_id); + + struct device_evidence *evidence =3D device_evidence_create(0, HASH_ALGO_= SHA384); + if (!evidence) + return ERR_PTR(-ENOMEM); + gtdi->ds.base_tsm.evidence =3D evidence; + + gtdi->tdi_id =3D tdi_id; + + return &no_free_ptr(gtdi)->ds.base_tsm; +} + +static void sev_guest_unlock(struct pci_tsm *tsm) +{ + struct pci_dev *pdev =3D tsm->pdev; + u64 fw_err =3D 0; + + sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_UNBIND, &fw_err, = NULL); + + /* Quiesce DMA */ + sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_STOP, &fw_err, NU= LL); + + tsm->pdev->tsm =3D NULL; + kvfree(tsm); +} + +static int sev_guest_accept(struct pci_dev *pdev) +{ + struct pci_tsm *tsm =3D pdev->tsm; + u64 fw_err =3D 0; + + if (!tsm->evidence->obj[DEVICE_EVIDENCE_TYPE_REPORT].data) { + pci_warn_once(pdev, "Cannot accept without the report"); + return -ENODEV; + } + + int ret =3D tio_tdi_sdte_write(pdev, snp_dev, gtdi->tdi_id, 0, false); //= Mark everything "shared" + if (ret) + return ret; + + return sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_RUN, &fw_e= rr, NULL); +} + +static int sev_guest_enable_dma(struct pci_dev *pdev) +{ + struct tio_guest_tdi *gtdi =3D pdev_to_tdi(pdev); + struct snp_guest_dev *snp_dev =3D gtdi->snp_dev; + int ret; + + ret =3D tio_tdi_sdte_write(pdev, snp_dev, gtdi->tdi_id, tsm_vtom, false); + + return ret; +} + +static void sev_guest_disable_dma(struct pci_dev *pdev) +{ + struct tio_guest_tdi *gtdi =3D pdev_to_tdi(pdev); + struct snp_guest_dev *snp_dev =3D gtdi->snp_dev; + int rc; + + rc =3D tio_tdi_sdte_write(pdev, snp_dev, gtdi->tdi_id, tsm_vtom, true); + if (rc) + pr_err("SDTE_WRITE failed, ret=3D%d\n", rc); +} + +struct pci_tsm_ops sev_guest_tsm_ops =3D { + .lock =3D sev_guest_lock, + .unlock =3D sev_guest_unlock, + .run =3D sev_guest_accept, + .enable_dma =3D sev_guest_enable_dma, + .disable_dma =3D sev_guest_disable_dma, +}; + +void sev_guest_tsm_set_ops(bool set, struct snp_guest_dev *snp_dev) +{ + if (set) { + struct tsm_dev *tsmdev; + + tsmdev =3D tsm_register(snp_dev->dev, &sev_guest_tsm_ops); + if (!IS_ERR_OR_NULL(tsmdev)) + snp_dev->tsmdev =3D tsmdev; + return; + } + + if (snp_dev->tsmdev) { + tsm_unregister(snp_dev->tsmdev); + snp_dev->tsmdev =3D NULL; + } +} --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789560200; cv=pass; d=zohomail.com; s=zohoarc; b=J9Sepn09UPZVfwdOTEjv0m7M4AhbGRjyYHoEHVdkF3fZkuTBthOK/5VbmY9K6ozYQ/iN4xYo/ct0k/vG/BusCdTQayKqwPtd6ZzFC6X1gsco/k8NKF8DCwRshJuWwFfweH7FP6O6OvJS7kOq2MpyoCXOMSUXdthgoxu8njeXp0w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789560200; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hhr24ObJOq7bbaHkOTfqjQthzL33Uot6iWXZUXcZvPs=; b=me3XAVRwC0WqiqpSilcR0w1U4X4fiUG0SafsahYg3jkka3S1qgPpSKhndTgyjps2w+YhG9AvCUqKLxuEReb4ilzOALGe5mblf54ax86D6Cd0M1hiibkyknDJ062H2El4wV/FJyofwvZr/+hVoJ1mYJms3tUYOks9302+HrDpFQw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789560200444196.71514003150503; Wed, 16 Sep 2026 05:03:20 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1423012.1648316 (Exim 4.92) (envelope-from ) id 1x6oLy-0007nW-5v; Wed, 16 Sep 2026 12:03:06 +0000 Received: by outflank-mailman (output) from mailman id 1423012.1648316; Wed, 16 Sep 2026 12:03: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 1x6oLy-0007nP-2l; Wed, 16 Sep 2026 12:03:06 +0000 Received: by outflank-mailman (input) for mailman id 1423012; Wed, 16 Sep 2026 12:03:04 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oLw-0007m7-Kv for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 12:03:04 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oLv-005eex-UV for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 14:03:03 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa8566-e002-0a2a0a5209dd-0a2a4507dab6-48 for ; Wed, 16 Sep 2026 14:03:03 +0200 Received: from [40.107.201.37] (helo=CH4PR04CU002.outbound.protection.outlook.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa8575-b4ea-0a2a45070019-286bc92563b6-3 for ; Wed, 16 Sep 2026 14:03:03 +0200 Received: from SJ0PR05CA0149.namprd05.prod.outlook.com (2603:10b6:a03:33d::34) by DS5PPF5A66AFD1C.namprd12.prod.outlook.com (2603:10b6:f:fc00::64d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.9; Wed, 16 Sep 2026 12:02:49 +0000 Received: from SJ5PEPF00000209.namprd05.prod.outlook.com (2603:10b6:a03:33d:cafe::6d) by SJ0PR05CA0149.outlook.office365.com (2603:10b6:a03:33d::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.8 via Frontend Transport; Wed, 16 Sep 2026 12:02:48 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000209.mail.protection.outlook.com (10.167.244.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 12:02:48 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 07:02:24 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wz0IlNnPvJv+NQAGKSxKEz9M9Zu3liuLwku0ioqfSTQ6l+zxOZoVJ0Co91tG+SSf5sNCiNLxQktZ4JtQaJKg7yawDJfN9Q7k0396HYkuGICsRWGbwYttSz7q5z/GcFw1s2SqTgMoCXyEC3GTTTiSA5f6W//nmzXn0XhMer9rCSgPY1d718e/fCkjyvAorsXdGLmF4+MC6hn7jzzfXCPRd7YakXH/gmxT/YwwLrYZW81/FvM62ZthtuizjcoqeY5fGn9CJndIankLG4xBii7ykgiFg+B7hjaIUuDVli6ZzNctIxXwVKs7cPIOwX8/La6ozlyFR3CbROBdwjcTbpkLJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=hhr24ObJOq7bbaHkOTfqjQthzL33Uot6iWXZUXcZvPs=; b=C3riSyFLxEVKfOLplH1eesMG6rtOSW/nYQi/teGYPwUwjp2FTN6PPIAPa5kQnNFfNnhHNzDUyFXfXjg5Di3qrtT2BEDt0TOpWfqaSFvIjGZgtWKWWv7PFuFcw+cB6PRhtY63vsoKSy+pnz3rwX+Fd9eRBU1CmV933ZKNnoq2Gqrl86HY10c9k72I7QqFdaGu9dYGx60JfeI4OyOKqmreXgpQnVPoSceJdaeOQc9Wx4I3orBJaST5k9KniRmBQRgMBnZG5FDWwevTFsgx1naDh+SOKbhm7oGA+8OlbrErb3s04XT7gape9znrm/9SLM2MF2HUu69+pPaZ81xwc952Lw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hhr24ObJOq7bbaHkOTfqjQthzL33Uot6iWXZUXcZvPs=; b=dEagLY+Q3BlZMFubhFKDxlq/VNvHhtoadVYQRpEkP8iywVjbqSaNYxEKsk2CCsd+MrIc+y2wuFiPJJp5DmsVQ/aBXX0/gtkpRi+NCfLn5sGDLixNm5X64cghILOT8DAoUpxwQi3Q1MOkdKZ2KgRt9yUkPQp77HoPLvYG9eAWgf8= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 16/17] x86/sev: Enable secure MMIO (phase2) Date: Wed, 16 Sep 2026 21:51:56 +1000 Message-ID: <20260916115159.1938195-17-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000209:EE_|DS5PPF5A66AFD1C:EE_ X-MS-Office365-Filtering-Correlation-Id: 192fdd71-d3ad-437f-84a5-08df13ea6d18 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|32650700020|23010399003|7416014|376014|10067099003|10063799003|22082099003|18002099003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: rAYJ1ZEaPMY4ebXUUanmtjH5GEDkJnfh2oL7uP/UlnwngJ8+9U59pjrgkf4l5QSbrf8ozYU5eoQwHQTrO5/idOTclo6MIV0wNKOdmHaQZ3INkfDB/XAtTJ4OoqtNPEdJVgzbQMl7CWpSOWXIPrNmyNwJMxi5D4mSrZ0J3e17RhpZDokMYuXqz0mAdKKtqOJd81i+Nd+rcjnx9SKXoi/6JyrpU5X6EvICFAyCThuCOubkPovwahz6YmYcUrkTk663y+v8gXZV8ZcWu6ZJSWtilEg8mj8jjL8+ngQb0DhrBTKcTJeJCq42g8/CMZ7tY817KvogenvedaZ6al+bXS2RjD96VUaawgJhZtZWPSI3g2zh+YS4PbnxVGrHVt2lL/k8UVaVg1Z/fZxYWrpgceiAAa2rV2vBtjAUuJgA5irKPhCsdI5OwiLaYFjxq7/SSUwls1yHzAZnGM44o76zKT4v17sbL2hO+vIjQdAB+dIUqiPoCqSrNhfZzzIDeFT6tYZgfFBbtLA4WcIlG9+zfQN1D6a235f2BCUQBrtMK8/5aI0ICuhL0M9ugvbjzKf1MWvj/dNnqlwGPN5ufUEsx7bSYOj+SOGXTi9bUK1971DWPtqt0iHU/lyofxH40zJH7dJzDUW6842JtzdwvMmsSOZvngAMGq2jaz09qWMm4vJ2joSeGqY4IoDS7lmWYf2HbjTeEmjIDkqTQZuyWDIBP/ufkw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(32650700020)(23010399003)(7416014)(376014)(10067099003)(10063799003)(22082099003)(18002099003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DCCVrm9p8t6eZOOk4GJCUS43Z8KcgmvI3YzmmAcBE7ZahABBe4I8M2kGS3XT+z98XTu8RWiszsGk3RkVlxAeionzj0+s/hzFqaXr95aBLKliNb8Vy9gGHiv1ty1VW6NMqgGCcwMJbmRWBIUuaOZvGJFmugcuex7+5Se0MrloxwhfaqOgqOuY59lt4SiIc33tTxHRbxS/qKYztBXkCL41CR8p21ARH5RkDUxUEE04b+DGQFcWgLSrWLlV2449Buir2O7ku6XuIGkixZGFshjeWbMuO7z7oGdzhztZoJA9wLBwN3ho9S3/7CytKu7bbicVhiLxJYobMswAmpOBPDSUnOsIYVQ2KkbVc3P/MhbnkmLiXAwltHY6MIAvEvvR6Z6AIOEwTejP0cZtr46zUvlvdMl0g5s22S2HsMxTYOuWxHmn4M2fpWp4MFdvBX+eYvQO X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:02:48.2468 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 192fdd71-d3ad-437f-84a5-08df13ea6d18 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000209.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF5A66AFD1C X-purgate-ID: tlsNG-ef75cf/1789560183-34ECEAE4-35DA5EE7/0/0 X-purgate-type: clean X-purgate-size: 17496 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789560202409158500 Content-Type: text/plain; charset="utf-8" In order to enable secure MMIO, RMP needs to be updated. Unlike RAM (where PVALIDATE validate the RMP entry), MMIO RMP entries require assistance from the PSP. Add TDI_INFO TIO guest request command. Request the TDI interface report from the PSP. Use the report to validate MMIO ranges reported as non-NonTEE (i.e. encrypted). The TSM subsystem notifies the PCI subsystem to automatically map validated MMIO ranges as encrypted. Since for MMIO the TSM driver needs TDISP report, add shared memory buffers for receiving the device evidence. Use DMA SWIOTLB for these buffers, explicitly, by forcing 32bit DMA mask. Signed-off-by: Alexey Kardashevskiy --- include/uapi/linux/sev-guest.h | 12 + drivers/virt/coco/sev-guest/core.c | 3 +- drivers/virt/coco/sev-guest/tio.c | 394 +++++++++++++++++++- 3 files changed, 400 insertions(+), 9 deletions(-) diff --git a/include/uapi/linux/sev-guest.h b/include/uapi/linux/sev-guest.h index fcdfea767fca..28db79886ca5 100644 --- a/include/uapi/linux/sev-guest.h +++ b/include/uapi/linux/sev-guest.h @@ -13,6 +13,7 @@ #define __UAPI_LINUX_SEV_GUEST_H_ =20 #include +#include =20 #define SNP_REPORT_USER_DATA_SIZE 64 =20 @@ -96,4 +97,15 @@ struct snp_ext_report_req { #define SNP_GUEST_VMM_ERR_INVALID_LEN 1 #define SNP_GUEST_VMM_ERR_BUSY 2 =20 +/* Optional Certificates/measurements/report data from TIO_GUEST_REQUEST */ +struct tio_blob_table_entry { + guid_t guid; + __u32 offset; + __u32 length; +} __packed; + +/* Attestation report: 70dc5b0e-0cc0-4cd5-97bb-ff0ba25bf320 */ +#define TIO_GUID_REPORT \ + GUID_INIT(0x70dc5b0e, 0x0cc0, 0x4cd5, 0x97, 0xbb, 0xff, 0x0b, 0xa2, 0x5b,= 0xf3, 0x20) + #endif /* __UAPI_LINUX_SEV_GUEST_H_ */ diff --git a/drivers/virt/coco/sev-guest/core.c b/drivers/virt/coco/sev-gue= st/core.c index 8448c123ab1e..8710c41daed6 100644 --- a/drivers/virt/coco/sev-guest/core.c +++ b/drivers/virt/coco/sev-guest/core.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include =20 @@ -677,7 +678,7 @@ static int __init sev_guest_probe(struct platform_devic= e *pdev) if (!sev_hv_features_ptr || !(*sev_hv_features_ptr & GHCB_HV_FT_SNP_SEV_T= IO)) tsm_enable =3D false; =20 - if (tsm_enable) + if (tsm_enable && !dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) sev_guest_tsm_set_ops(true, snp_dev); =20 return 0; diff --git a/drivers/virt/coco/sev-guest/tio.c b/drivers/virt/coco/sev-gues= t/tio.c index 99ff2b9c872a..06addbb3a9ad 100644 --- a/drivers/virt/coco/sev-guest/tio.c +++ b/drivers/virt/coco/sev-guest/tio.c @@ -22,15 +22,71 @@ MODULE_PARM_DESC(tsm_vtom, "SEV TIO vTOM value"); #define pdev_to_tdi(p) container_of((p)->tsm, struct tio_guest_tdi, ds.ba= se_tsm) #define ghcb_tio_sbdfn(pdev) ((pci_domain_nr((pdev)->bus) << 16) | pci_dev= _id(pdev)) =20 +#define TIO_DATA_PAGES (SZ_32K >> PAGE_SHIFT) +#define SPDM_MEASUREMENTS_NONCE_LEN 32 + +static void sev_free_shared_pages(struct device *dev, void *buf, + unsigned long npages, dma_addr_t dma_handle) +{ + dma_free_coherent(dev, npages << PAGE_SHIFT, buf, dma_handle); +} + +static void *sev_alloc_shared_pages(struct device *dev, unsigned long npag= es, + dma_addr_t *dma_handle) +{ + return dma_alloc_coherent(dev, npages << PAGE_SHIFT, dma_handle, GFP_KERN= EL); +} + struct tio_guest_tdi { struct pci_tsm_devsec ds; struct snp_guest_dev *snp_dev; u64 tdi_id; /* Runtime FW generated TDI id */ }; =20 +static void device_evidence_object_clear(struct device_evidence_object *ob= j) +{ + if (!obj) + return; + + kfree(obj->digest); + kfree(obj->data); + obj->data =3D NULL; + obj->len =3D 0; + obj->digest =3D NULL; +} + +static int device_evidence_object_assign(struct device_evidence_object *ob= j, + const void *src, size_t len) +{ + void *copy; + + device_evidence_object_clear(obj); + if (!len || !src) + return 0; + + copy =3D kmemdup(src, len, GFP_KERNEL); + if (!copy) + return -ENOMEM; + + obj->data =3D copy; + obj->len =3D len; + return 0; +} + +static void device_evidence_release(struct device_evidence *evidence) +{ + unsigned int i; + + if (!evidence) + return; + + for (i =3D 0; i <=3D DEVICE_EVIDENCE_TYPE_MAX; i++) + device_evidence_object_clear(&evidence->obj[i]); +} + static int handle_tio_guest_request(struct snp_guest_dev *snp_dev, u8 type, void *req_buf, size_t req_sz, void *resp_buf, u32 resp_sz, - u64 *bdfn, u64 *param, u64 *fw_err) + void *pt, u64 *npages, u64 *bdfn, u64 *param, u64 *fw_err) { struct snp_msg_desc *mdesc =3D snp_dev->msg_desc; struct snp_guest_req req =3D { @@ -52,6 +108,10 @@ static int handle_tio_guest_request(struct snp_guest_de= v *snp_dev, u8 type, goto error_exit; } =20 + if (pt && npages) { + req.certs_data =3D pt; + req.input.data_npages =3D *npages; + } if (bdfn) { req.input.guest_rid =3D *bdfn & 0xFFFFFFFF; req.input.npages =3D *bdfn >> 32; @@ -71,6 +131,69 @@ static int handle_tio_guest_request(struct snp_guest_de= v *snp_dev, u8 type, return ret; } =20 +static int guest_request_tio_data(struct snp_guest_dev *snp_dev, u8 type, + void *req_buf, size_t req_sz, void *resp_buf, u32 resp_sz, + u64 bdfn, struct device_evidence_object *report, + u64 *fw_err) +{ + u64 npages =3D TIO_DATA_PAGES, param =3D 0; + struct tio_blob_table_entry *pt; + dma_addr_t dh =3D 0; + int rc; + + pt =3D sev_alloc_shared_pages(snp_dev->dev, TIO_DATA_PAGES, &dh); + if (!pt) + return -ENOMEM; + + if (report) + param |=3D SVM_VMGEXIT_SEV_TIO_GR_INFO_REPORT; + + rc =3D handle_tio_guest_request(snp_dev, type, req_buf, req_sz, resp_buf,= resp_sz, + pt, &npages, &bdfn, ¶m, fw_err); + if (npages > TIO_DATA_PAGES) { + sev_free_shared_pages(snp_dev->dev, pt, TIO_DATA_PAGES, dh); + pt =3D sev_alloc_shared_pages(snp_dev->dev, npages, &dh); + if (!pt) + return -ENOMEM; + + rc =3D handle_tio_guest_request(snp_dev, type, req_buf, req_sz, resp_buf= , resp_sz, + pt, &npages, &bdfn, ¶m, fw_err); + } + if (rc) + goto out_free_pt; + + if (report) + device_evidence_object_clear(report); + + for (unsigned int i =3D 0; i < 3; ++i) { + u8 *ptr =3D ((u8 *)pt) + pt[i].offset; + size_t len =3D pt[i].length; + + if (guid_is_null(&pt[i].guid)) + break; + + if (!len) + continue; + + if (guid_equal(&pt[i].guid, &TIO_GUID_REPORT) && report) + rc =3D device_evidence_object_assign(report, ptr, len); + else + continue; + if (rc) + goto out_clear_blobs; + } + sev_free_shared_pages(snp_dev->dev, pt, npages, dh); + + return 0; + +out_clear_blobs: + if (report) + device_evidence_object_clear(report); +out_free_pt: + sev_free_shared_pages(snp_dev->dev, pt, npages, dh); + return rc; +} + struct tio_msg_tdi_info_req { u64 tdi_id; u8 reserved[8]; @@ -107,6 +230,224 @@ struct tio_msg_tdi_info_rsp { u64 reserved4; } __packed; =20 +static int tio_tdi_status(struct pci_dev *pdev, struct snp_guest_dev *snp_= dev, + struct tsm_tdi_status *ts, uint64_t tdi_id, + struct device_evidence_object *report) +{ + size_t resp_len =3D sizeof(struct tio_msg_tdi_info_rsp) + AUTHTAG_LEN; + struct tio_msg_tdi_info_rsp *rsp __free(kfree_sensitive) =3D kzalloc(resp= _len, GFP_KERNEL); + struct tio_msg_tdi_info_req req =3D { + .tdi_id =3D tdi_id, + }; + u64 fw_err =3D 0; + int rc; + + pci_notice(pdev, "TDI info"); + if (!rsp) + return -ENOMEM; + + rc =3D guest_request_tio_data(snp_dev, TIO_MSG_TDI_INFO_REQ, &req, + sizeof(req), rsp, resp_len, + ghcb_tio_sbdfn(pdev), report, &fw_err); + if (rc) + return rc; + + ts->tdi_id =3D rsp->tdi_id; + + return 0; +} + +struct tio_msg_mmio_validate_req { + u64 tdi_id; + u8 reserved2[8]; + u64 subrange_base; + u32 subrange_page_count; + u32 range_offset; + + u16 validated:1; /* Desired value to set RMP.Validated for the range */ + /* + * Force validated: + * 0: If subrange does not have RMP.Validated set uniformly, fail. + * 1: If subrange does not have RMP.Validated set uniformly, force + * to requested value + */ + u16 force_validated:1; + u16 reserved3:14; + + u16 range_id; + u8 reserved4[12]; +} __packed; + +/* Status codes from TIO_MSG_MMIO_VALIDATE_REQ */ +enum mmio_validate_status { + MMIO_VALIDATE_SUCCESS =3D 0, + MMIO_VALIDATE_INVALID_TDI =3D 1, + MMIO_VALIDATE_TDI_UNBOUND =3D 2, + MMIO_VALIDATE_NOT_ASSIGNED =3D 3, /* At least one page is not assigned to= the guest */ + MMIO_VALIDATE_NOT_IO =3D 4, /* At least one page is not an I/O page */ + MMIO_VALIDATE_NOT_UNIFORM =3D 5, /* Validated bit is not uniformly set f= or range */ + MMIO_VALIDATE_NOT_IMMUTABLE =3D 6,/* >=3D1 page does not have immutable b= it set */ + MMIO_VALIDATE_NOT_MAPPED =3D 7, /* At least one page is not mapped to t= he expected GPA */ + MMIO_VALIDATE_NOT_REPORTED =3D 8, /* Range ID is not reported in TDI repo= rt */ + MMIO_VALIDATE_OUT_OF_RANGE =3D 9, /* Subrange is out the MMIO range in TD= I report */ + MMIO_VALIDATE_NOT_4K =3D 10, /* >=3D1 page is not 4K page size */ +}; + +struct tio_msg_mmio_validate_rsp { + u64 tdi_id; + u16 status; /* MMIO_VALIDATE_xxx */ + u8 reserved1[6]; + u64 subrange_base; + u32 subrange_page_count; + u32 range_offset; + + u16 changed:1; /* Validated bit has changed due to this operation */ + u16 reserved2:15; + + u16 range_id; + u8 reserved3[12]; +} __packed; + +static int mmio_validate_range(struct snp_guest_dev *snp_dev, struct pci_d= ev *pdev, + uint64_t tdi_id, unsigned int range_id, + resource_size_t start, resource_size_t size, + bool invalidate, u64 *fw_err, u16 *status) +{ + size_t resp_len =3D sizeof(struct tio_msg_mmio_validate_rsp) + AUTHTAG_LE= N; + struct tio_msg_mmio_validate_rsp *rsp __free(kfree_sensitive) =3D + kzalloc(resp_len, GFP_KERNEL); + struct tio_msg_mmio_validate_req req =3D { + .tdi_id =3D tdi_id, + .subrange_base =3D start >> 12, + .subrange_page_count =3D size >> 12, + .range_offset =3D 0, + .validated =3D !invalidate, /* Desired value to set RMP.Validated for th= e range */ + .force_validated =3D 0, + .range_id =3D range_id, + }; + u64 num_bdfn =3D SVM_VMGEXIT_SEV_TIO_GR_MMIO_MK_NUM_BDFN(size >> 12, ghcb= _tio_sbdfn(pdev)); + u64 mmio_val =3D SVM_VMGEXIT_SEV_TIO_GR_MMIO_MK_VALIDATE(start, !invalida= te); + int rc; + + if (!rsp) + return -ENOMEM; + + rc =3D handle_tio_guest_request(snp_dev, TIO_MSG_MMIO_VALIDATE_REQ, + &req, sizeof(req), rsp, resp_len, + NULL, NULL, &num_bdfn, &mmio_val, fw_err); + if (rc || *fw_err || rsp->status !=3D MMIO_VALIDATE_SUCCESS) { + pci_err(pdev, "MMIO validate failed with rc=3D%d, fwerr=3D0x%llx, status= =3D%x\n", + rc, *fw_err, rsp->status); + if (!rc) + return -EFAULT; + return rc; + } + + *status =3D rsp->status; + + return 0; +} + +static void tio_tdi_mmio_invalidate(struct pci_dev *pdev, struct snp_guest= _dev *snp_dev, + uint64_t tdi_id) +{ + struct pci_tsm *tsm =3D pdev->tsm; + u16 mmio_status; + u64 fw_err =3D 0; + int i =3D 0, rc =3D 0; + struct pci_tsm_devsec *devsec_tsm =3D to_pci_tsm_devsec(tsm); + struct pci_tsm_mmio *mmio =3D devsec_tsm->mmio; + + if (!mmio) + return; + + pci_notice(pdev, "MMIO invalidate"); + + for (i =3D 0; i < mmio->nr; ++i) { + struct pci_tsm_mmio_entry *entry =3D pci_tsm_mmio_entry(mmio, i); + struct resource *res =3D &entry->res; + unsigned int range_id =3D entry->range_id; + + if (range_id >=3D PCI_NUM_RESOURCES || + !resource_contains(pci_resource_n(pdev, range_id), res)) { + pci_info(pdev, "Skipping MMIO [%d] %pr: no BAR %u window\n", + i, res, range_id); + continue; + } + + mmio_status =3D 0; + rc =3D mmio_validate_range(snp_dev, pdev, tdi_id, range_id, + res->start, resource_size(res), true, &fw_err, + &mmio_status); + if (rc || fw_err !=3D SEV_RET_SUCCESS || mmio_status !=3D MMIO_VALIDATE_= SUCCESS) { + pci_err(pdev, "MMIO #%d %llx..%llx validation failed 0x%llx %d\n", + range_id, res->start, res->end, fw_err, mmio_status); + continue; + } + + pci_notice(pdev, "MMIO #%d %llx..%llx invalidated\n", + range_id, res->start, res->end); + } + + pci_tsm_mmio_teardown(devsec_tsm->mmio); + kfree(devsec_tsm->mmio); + devsec_tsm->mmio =3D NULL; +} + +static int tio_tdi_mmio_validate(struct pci_dev *pdev, struct snp_guest_de= v *snp_dev, + uint64_t tdi_id) +{ + struct pci_tsm *tsm =3D pdev->tsm; + u16 mmio_status; + u64 fw_err =3D 0; + int i, rc =3D 0; + struct pci_tsm_mmio *mmio __free(kfree) =3D pci_tsm_mmio_alloc(pdev); + + if (!mmio) + return -ENOMEM; + + pci_notice(pdev, "MMIO validate"); + + for (i =3D 0; i < mmio->nr; ++i) { + struct pci_tsm_mmio_entry *entry =3D pci_tsm_mmio_entry(mmio, i); + struct resource *res =3D &entry->res; + unsigned int range_id =3D entry->range_id; + + if (range_id >=3D PCI_NUM_RESOURCES || + !resource_contains(pci_resource_n(pdev, range_id), res)) { + pci_info(pdev, + "Skipping MMIO [%d] %pr: no BAR %u window\n", + i, res, range_id); + continue; + } + + mmio_status =3D 0; + rc =3D mmio_validate_range(snp_dev, pdev, tdi_id, range_id, res->start, + resource_size(res), false, &fw_err, &mmio_status); + if (rc || fw_err !=3D SEV_RET_SUCCESS || mmio_status !=3D MMIO_VALIDATE_= SUCCESS) { + pci_err(pdev, "MMIO #%d %llx..%llx validation failed 0x%llx %d\n", + range_id, res->start, res->end, fw_err, mmio_status); + continue; + } + + pci_notice(pdev, "MMIO #%d %llx..%llx validated\n", range_id, res->start= , res->end); + } + + if (!rc) { + rc =3D pci_tsm_mmio_setup(pdev, mmio); + if (!rc) { + struct pci_tsm_devsec *devsec_tsm =3D to_pci_tsm_devsec(tsm); + + devsec_tsm->mmio =3D no_free_ptr(mmio); + } + } + + if (rc) + tio_tdi_mmio_invalidate(pdev, snp_dev, tdi_id); + + return rc; +} + struct sdte { u64 v : 1; u64 reserved : 3; @@ -216,7 +557,7 @@ static int tio_tdi_sdte_write(struct pci_dev *pdev, str= uct snp_guest_dev *snp_de =20 rc =3D handle_tio_guest_request(snp_dev, TIO_MSG_SDTE_WRITE_REQ, &req, sizeof(req), rsp, resp_len, - &bdfn, &flags, &fw_err); + NULL, NULL, &bdfn, &flags, &fw_err); if (rc || fw_err || rsp->status !=3D SDTE_WRITE_SUCCESS) { pci_err(pdev, "SDTE write failed with rc=3D%d, fwerr=3D0x%llx, status=3D= %x\n", rc, fw_err, rsp->status); @@ -233,6 +574,7 @@ static int tio_tdi_sdte_write(struct pci_dev *pdev, str= uct snp_guest_dev *snp_de static struct pci_tsm *sev_guest_lock(struct tsm_dev *tsmdev, struct pci_d= ev *pdev) { struct tio_guest_tdi *gtdi __free(kfree) =3D kzalloc(sizeof(*gtdi), GFP_K= ERNEL); + struct tsm_tdi_status ts =3D {}; u64 fw_err =3D 0, tdi_id =3D 0; int rc; =20 @@ -258,11 +600,21 @@ static struct pci_tsm *sev_guest_lock(struct tsm_dev = *tsmdev, struct pci_dev *pd } pci_dbg(pdev, "New TDI ID=3D%llx\n", tdi_id); =20 - struct device_evidence *evidence =3D device_evidence_create(0, HASH_ALGO_= SHA384); - if (!evidence) + struct device_evidence *ev =3D device_evidence_create(0, HASH_ALGO_SHA384= ); + if (!ev) return ERR_PTR(-ENOMEM); - gtdi->ds.base_tsm.evidence =3D evidence; =20 + rc =3D tio_tdi_status(pdev, gtdi->snp_dev, &ts, tdi_id, + &ev->obj[DEVICE_EVIDENCE_TYPE_REPORT]); + if (rc) + return ERR_PTR(rc); + + if (!ev->obj[DEVICE_EVIDENCE_TYPE_REPORT].data) { + device_evidence_release(ev); + return ERR_PTR(-ENODEV); + } + + gtdi->ds.base_tsm.evidence =3D ev; gtdi->tdi_id =3D tdi_id; =20 return &no_free_ptr(gtdi)->ds.base_tsm; @@ -271,19 +623,33 @@ static struct pci_tsm *sev_guest_lock(struct tsm_dev = *tsmdev, struct pci_dev *pd static void sev_guest_unlock(struct pci_tsm *tsm) { struct pci_dev *pdev =3D tsm->pdev; + struct tio_guest_tdi *gtdi =3D pdev_to_tdi(pdev); + struct snp_guest_dev *snp_dev =3D gtdi->snp_dev; u64 fw_err =3D 0; =20 - sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_UNBIND, &fw_err, = NULL); + tio_tdi_mmio_invalidate(pdev, snp_dev, gtdi->tdi_id); =20 /* Quiesce DMA */ sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_STOP, &fw_err, NU= LL); =20 - tsm->pdev->tsm =3D NULL; + /* + * Up until now the VMM has been blocking clearing of BME and the device = may + * not be able to recover without BME going via 0, do it now. + * Note that the device reset is still needed, leave to the userspace to + * decide on that. + */ + pci_disable_device(pdev); + + sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_UNBIND, &fw_err, = NULL); + + device_evidence_release(tsm->evidence); kvfree(tsm); } =20 static int sev_guest_accept(struct pci_dev *pdev) { + struct tio_guest_tdi *gtdi =3D pdev_to_tdi(pdev); + struct snp_guest_dev *snp_dev =3D gtdi->snp_dev; struct pci_tsm *tsm =3D pdev->tsm; u64 fw_err =3D 0; =20 @@ -296,7 +662,19 @@ static int sev_guest_accept(struct pci_dev *pdev) if (ret) return ret; =20 - return sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_RUN, &fw_e= rr, NULL); + ret =3D sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_RUN, &fw_= err, NULL); + if (ret) + return ret; + + ret =3D tio_tdi_mmio_validate(pdev, snp_dev, gtdi->tdi_id); + if (ret) + goto stop_tdi; + + return 0; + +stop_tdi: + sev_tio_op(ghcb_tio_sbdfn(pdev), SVM_VMGEXIT_SEV_TIO_OP_STOP, &fw_err, NU= LL); + return ret; } =20 static int sev_guest_enable_dma(struct pci_dev *pdev) --=20 2.55.0 From nobody Thu Sep 24 18:57:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1789560244; cv=pass; d=zohomail.com; s=zohoarc; b=ZkIDEy68yi1FmkO2k4CGPS5xWv9ZfiZQogvH6hsje2wUuXFlYJ8zISTeFHC7jiw6O8/+tnoHzbewOOXq8+aGIrnR6EPANVN7uxhxNvORFjec36dio3r0whWCF4bVgxDPYdS/9LHxipHDXZr/gIzjcL5ca17zuLnDAP9CicO+2+0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789560244; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WNgXfa5En712+eAspMOEbd4EbM4QDl/vkmtEAEeJtpw=; b=GghninaRRE7kpX0VdQRU8JrIPSkJTVzXenYWKpjRBHX4bwNhjxua5hEuTxr2pg0uwngI0kpSNkz9NAtIk3KKhCEAe8HDs4hrF3sQ38RJ3vQoRc1Y5QyMk5gzD7uD0f+s7PlhurKus8Yd/oHllJAKs9Im6Q47fVGSLTrzlJDnuW4= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1789560244298626.7339177697457; Wed, 16 Sep 2026 05:04:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1423026.1648326 (Exim 4.92) (envelope-from ) id 1x6oMY-0008Tt-JA; Wed, 16 Sep 2026 12:03:42 +0000 Received: by outflank-mailman (output) from mailman id 1423026.1648326; Wed, 16 Sep 2026 12:03:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oMY-0008Tm-Es; Wed, 16 Sep 2026 12:03:42 +0000 Received: by outflank-mailman (input) for mailman id 1423026; Wed, 16 Sep 2026 12:03:41 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x6oMW-0008Sl-TY for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 12:03:41 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x6oMW-00AANj-9Y for xen-devel@lists.xenproject.org; Wed, 16 Sep 2026 14:03:40 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6aaa8596-2eae-0a2a0a5409dd-0a2a4502b68c-16 for ; Wed, 16 Sep 2026 14:03:39 +0200 Received: from [52.101.62.37] (helo=DM5PR21CU001.outbound.protection.outlook.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6aaa859a-6ca4-0a2a45020019-34653e25f70c-3 for ; Wed, 16 Sep 2026 14:03:39 +0200 Received: from SJ0PR05CA0148.namprd05.prod.outlook.com (2603:10b6:a03:33d::33) by PH7PR12MB5758.namprd12.prod.outlook.com (2603:10b6:510:1d1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.11; Wed, 16 Sep 2026 12:03:24 +0000 Received: from SJ5PEPF00000209.namprd05.prod.outlook.com (2603:10b6:a03:33d:cafe::6c) by SJ0PR05CA0148.outlook.office365.com (2603:10b6:a03:33d::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.8 via Frontend Transport; Wed, 16 Sep 2026 12:03:24 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF00000209.mail.protection.outlook.com (10.167.244.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.7 via Frontend Transport; Wed, 16 Sep 2026 12:03:24 +0000 Received: from aiemdee.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Wed, 16 Sep 2026 07:03:01 -0500 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sdWZGPM/zgWMCChuh52X0kMji/qLxyRnue0l4weppikfIskSxwetWJztFG0+vdh/yuym1d0rd0z3AfQTJLfwN5/s3ttZPOvbaFGTaPbhJkkXfTU7wIDgO0fbrwAc5JCaaTsidDHnutfF/OQFVv1XYn98HJ1W3xvnmWScIDfCUT3K14TyKd7PASinbA8Sk8PoFypDZP5fTlvlv72O+U9SMCcK8jxp/mNUydtEyYrHwfGavd0ucS7VnvEy4x6T/JOxc0I/y7m7k1tEp9FGYw6ZAGvqpO1pnvZy8VTszGO7n/Vrl6+0g9/VY2DU6OMEWRU0tw/CWyETpjwPpA/MYywJ6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=WNgXfa5En712+eAspMOEbd4EbM4QDl/vkmtEAEeJtpw=; b=LSYNh5pVts8gPMPMedX0JXjgMQiXo3cpgEMoWw+mHa2iEZwEuZAKy3JVH8sIV7pIGmPmhp1Pdii9dBGHYWUfDaV0yH1y3hpCRTFtVJhCc0K+PedFf69YdzoqYzT2HqGmzRSs9uVXsmJ0xPZOKeqPmEvBxX77/wEC+/CFR0QNoj1/Bv6PYR5S5yWrBIsn+h+41pGYwwPOoqAGPvhk62KHw7QAI0K0wqRibfEVgjss5cLb4NuliWck4voL2FcQcwdG7v/OtNPkoKmw0VmNAxi9FfEkUd6wHZVObbXkDVnCjSrM89ghLFpoHG8o9WNsZ6W0mO4hvtvv3dAyLMTEF37LHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WNgXfa5En712+eAspMOEbd4EbM4QDl/vkmtEAEeJtpw=; b=pEkxIe6WPh1OzcaBTJT4DVHOZUiIH9fM8UC0vHozp9wjEJKN7cTc8RQ2oJN5lIT/WKvmxpwTk90fQw7tTftPmDuF5diikQVG431OJLdqT9rnfRqfjeWMxJu4oTNAbxUZyI+8bsbwvSOuw7uEzI8tt4Fqr8NUiKxBtub7JpwIGes= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Alexey Kardashevskiy To: CC: , , , , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Sean Christopherson , Paolo Bonzini , Andy Lutomirski , Peter Zijlstra , Ashish Kalra , Tom Lendacky , Herbert Xu , "David S. Miller" , Bjorn Helgaas , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Marek Szyprowski , Robin Murphy , "Andrew Morton" , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , "Suren Baghdasaryan" , Michal Hocko , "Catalin Marinas" , Jini Susan George , Kees Cook , Michael Ellerman , Nikunj A Dadhania , Ard Biesheuvel , Eric Biggers , Kim Phillips , Joerg Roedel , Ethan Nelson-Moore , "Tycho Andersen (AMD)" , "Liam Merwick" , Michael Kerrisk , Suresh Siddha , Xiaotian Feng , Venkatesh Pallipadi , Andi Kleen , Kiryl Shutsemau , Tony Luck , Jason Gunthorpe , Lu Baolu , Xu Yilun , =?UTF-8?q?Carlos=20L=C3=B3pez?= , Jonathan Cameron , Jori Koolstra , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , "Aneesh Kumar K.V (Arm)" , Ian Campbell , Jeremy Fitzhardinge , Petr Tesarik , "David Howells" , Haavard Skinnemoen , Kenji Kaneshige , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , "Christian Marangi" , Dave Jiang , "Michael Kelley" , Ilias Stamatis , "Sumanth Korikkar" , Simona Vetter , Toshi Kani , Greg Kroah-Hartman , Vinod Koul , Jiang Liu , Arnd Bergmann , Anshuman Khandual , Kefeng Wang , "Palmer Dabbelt" , , , , , Alexey Kardashevskiy , , Santosh Shukla , "Pratik R . Sampat" , Scott Soule Cheloha , Ackerley Tng , Fuad Tabba Subject: [RFC PATCH kernel 17/17] x86/sev: Flush IOMMU TLB for trusted devices Date: Wed, 16 Sep 2026 21:51:57 +1000 Message-ID: <20260916115159.1938195-18-aik@amd.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260916115159.1938195-1-aik@amd.com> References: <20260916115159.1938195-1-aik@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF00000209:EE_|PH7PR12MB5758:EE_ X-MS-Office365-Filtering-Correlation-Id: 21ea1d17-cfda-4c2c-c170-08df13ea82d3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|36860700016|82310400026|23010399003|376014|1800799024|32650700020|11063799006|56012099006|6133799003|18002099003|22082099003|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: yu/3328I801SY6FsYLc9CmvUZeEctUSSIDcyqxwUJ2hyVwt1WwcikhhyEMaqjVoj9tup6Xs7JzO2JsFAwueqDHDuLJ4UJeD/Cqr0S/gwkM/VbD2cofhYFX+DGMcg8giesVcXkUaTcZfLys+XRE2GX0TEknqjsrq8h+KJMRLuv9azyIRAHjLcNOetKEeY/l3SK+Zl6nQaWCi2uBgCZm871matcHCgw8YPx771yvaq3lo372oXL6vbba3D+LqRDMjyGQXtjXjQ2kEqFmGqfdaiaI24BeoAKNt4T4lsp8YxyrpYck0xZC8v2YQWbWtd2ZjGgUZdlW8WfxK7kNLFYHLfq1OsmitoWZ5nLJKkI5SlgjZ5Y1b6ytdTP9v1b5oOHAKJ/TeeWP3hRt4xn56FdReJnGnJ6Mfx1xjAhoFl16ZwQ25h/RSTrPwtNSOwF0tNev+u2W1ADCXmLBjsw6yfT18W86V2LNNt4b+fRE23l5h0xhIYXcOsWPSB+Y3F5SDGmWere2xqvjMP/gQfj8rpcZxpYarVEjV+OFEKpCid77UcNu/fAGh7619VZIwl2bovx9wB X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(36860700016)(82310400026)(23010399003)(376014)(1800799024)(32650700020)(11063799006)(56012099006)(6133799003)(18002099003)(22082099003)(3023799007)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cb7bK2cEQmHcr0JP49cyQs52un826U+ce5HZh0WUKLP+NxrD8AcCzH5bePkXMGpnA3ymANrzpOSs6nrnYlJPrhKvhMt+HtLVqqmS/E6++vt5OAdCWcjsBtHKJ+QIvM/bunvTX7sQKQ/2dns2Gc45uni/M6nHqDzJVC8R0Po21vRlnjJa+CcTk0dJZ3HbQ5zUPHsM1WIk9XQj39DDho1cKopgzakVdo/TZNycLzBfRVOk8LuI1piyvQ5BRbAzLqWH76tpNQKNERneQPauhw+yjtUPl1rqfN8chlrueV970xK4gUAPXQ2sMffAzL/zncSCVYK1Hwdgvut4Qb3FsjbJ3ufmR1Vfxlf8u1T+0W2JcqtSsasf0M/f6hxoC+oUKHN+NZI6VVyVLetXy4sdmL6/faQmDdYbLkXxVyvkuVeH1fivn8YnzvYNkPGf8gVbJJcV X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:03:24.6817 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 21ea1d17-cfda-4c2c-c170-08df13ea82d3 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF00000209.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5758 X-purgate-ID: tlsNG-720697/1789560219-31FD62AC-CA4974FF/0/0 X-purgate-type: clean X-purgate-size: 7507 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1789560245144158500 Content-Type: text/plain; charset="utf-8" IOMMU performs RMP checks when SNP is enabled, the results are cached along with the IOMMU translations. When a VM lowers permission of a mapped page (moves to a lower VMPL level or from read+write to read-only or private to shared), the cached RMP check results require invalidation. At the moment the only way to invalidate IOMMU cache is the RMPUPDATE instruction which flushes all IOMMU TLBs. It is a host privileged instruction so a VM needs a way to ensure the host has done it. Note that the guest's RMPADJUST/PVALIDATE do not flush IOMMU TLBs. The host implements a new "IOMMU TLB Flush" VMGEXIT code which is advertised via bit#11 in the GHCB Hypervisor capabilities. Use RMPUPDATE in the following way: - allocate a page per VCPU (to allow lockless flushing); - When invalidation is needed, copy two patterns (A and B) to the page; - invalidate the page so the host can make it shared; - use new GHCB call to request RMPUPDATE on the host; - the host makes the page shared; - the host clears pattern A; - the host makes the page private again; - the host returns to the guest; - check if pattern A has changed and pattern B has not; - if the above failed, panic(). The patterns are located far enough to not hit the same cache line to work with the cipher text hiding feature. The host can choose to not execute the request, WARN_ON if this is the case. Further patches will attempt to handle this in other way. Signed-off-by: Alexey Kardashevskiy --- arch/x86/include/asm/sev-common.h | 2 + arch/x86/include/uapi/asm/svm.h | 3 + arch/x86/coco/sev/core.c | 92 ++++++++++++++++++++ 3 files changed, 97 insertions(+) diff --git a/arch/x86/include/asm/sev-common.h b/arch/x86/include/asm/sev-c= ommon.h index ff763c3c5d63..51abf8d061fa 100644 --- a/arch/x86/include/asm/sev-common.h +++ b/arch/x86/include/asm/sev-common.h @@ -138,6 +138,7 @@ enum psc_op { #define GHCB_HV_FT_SNP_AP_CREATION BIT_ULL(1) #define GHCB_HV_FT_SNP_MULTI_VMPL BIT_ULL(5) #define GHCB_HV_FT_SNP_SEV_TIO BIT_ULL(7) +#define GHCB_HV_FT_SNP_IOMMU_TLB_FLUSH BIT_ULL(11) =20 /* * SNP Page State Change NAE event @@ -210,6 +211,7 @@ struct snp_psc_desc { #define GHCB_TERM_SECURE_TSC 10 /* Secure TSC initialization failed */ #define GHCB_TERM_SVSM_CA_REMAP_FAIL 11 /* SVSM is present but CA could no= t be remapped */ #define GHCB_TERM_SAVIC_FAIL 12 /* Secure AVIC-specific failure */ +#define GHCB_TERM_IOMMUTLB_FLUSH 13 /* IOMMUTLB flush failed for SEV-TIO d= evice */ =20 #define GHCB_RESP_CODE(v) ((v) & GHCB_MSR_INFO_MASK) =20 diff --git a/arch/x86/include/uapi/asm/svm.h b/arch/x86/include/uapi/asm/sv= m.h index 93597ad492bf..269050942c8e 100644 --- a/arch/x86/include/uapi/asm/svm.h +++ b/arch/x86/include/uapi/asm/svm.h @@ -160,6 +160,8 @@ #define SVM_VMGEXIT_SEV_TIO_OP_UNBIND 1 #define SVM_VMGEXIT_SEV_TIO_OP_RUN 2 #define SVM_VMGEXIT_SEV_TIO_OP_STOP 3 +#define SVM_VMGEXIT_IOMMU_TLB_FLUSH 0x80000022ull +#define SVM_VMGEXIT_IOMMU_TLB_FLUSH_NO_ACTION 1 #define SVM_VMGEXIT_HV_FEATURES 0x8000fffdull #define SVM_VMGEXIT_TERM_REQUEST 0x8000fffeull #define SVM_VMGEXIT_TERM_REASON(reason_set, reason_code) \ @@ -285,6 +287,7 @@ { SVM_VMGEXIT_AP_CREATION, "vmgexit_ap_creation" }, \ { SVM_VMGEXIT_SEV_TIO_GR, "vmgexit_sev_tio_guest_request" }, \ { SVM_VMGEXIT_SEV_TIO_OP, "vmgexit_sev_tio_op" }, \ + { SVM_VMGEXIT_IOMMU_TLB_FLUSH, "vmgexit_sev_tio_iommu_tlb_flush" }, \ { SVM_VMGEXIT_HV_FEATURES, "vmgexit_hypervisor_feature" }, \ { SVM_EXIT_ERR, "invalid_guest_state" } =20 diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index ed0e4546d5e5..aa5a3abb4796 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -44,6 +44,7 @@ #include #include #include +#include =20 #include "internal.h" =20 @@ -103,6 +104,36 @@ static unsigned long snp_tsc_freq_khz __ro_after_init; =20 DEFINE_PER_CPU(struct sev_es_runtime_data*, runtime_data); DEFINE_PER_CPU(struct sev_es_save_area *, sev_vmsa); +DEFINE_PER_CPU(u8 *, iommu_tlb_flush_ghcb_page); +static atomic_t sev_tio_devices_num; + +static int alloc_iommu_tlb_flush_ghcb_pages(void) +{ + unsigned int cpu; + struct page *pg; + void *p; + + /* + * Allocate per CPU pages while encrypted DMA is not happening yet + * and smashing is cheap. + */ + for_each_possible_cpu(cpu) { + if (per_cpu(iommu_tlb_flush_ghcb_page, cpu)) + continue; + + pg =3D alloc_pages_node(cpu_to_node(cpu), GFP_KERNEL, 0); + if (!pg) + return -ENOMEM; + + p =3D page_to_virt(pg); + /* Trigger psmash in the host os now to avoid psmash race later */ + snp_set_memory_shared((unsigned long)p, 1); + snp_set_memory_private((unsigned long)p, 1); + per_cpu(iommu_tlb_flush_ghcb_page, cpu) =3D p; + } + + return 0; +} =20 int sev_tio_op(u32 guest_rid, unsigned int op, u64 *fw_err, u64 *tdi_id) { @@ -111,6 +142,24 @@ int sev_tio_op(u32 guest_rid, unsigned int op, u64 *fw= _err, u64 *tdi_id) struct ghcb *ghcb; int ret; =20 + if (!(sev_hv_features & GHCB_HV_FT_SNP_SEV_TIO)) + return -EPERM; + + if (op =3D=3D SVM_VMGEXIT_SEV_TIO_OP_RUN || op =3D=3D SVM_VMGEXIT_SEV_TIO= _OP_STOP) { + if (!(sev_hv_features & GHCB_HV_FT_SNP_IOMMU_TLB_FLUSH)) + return -EPERM; + + if (op =3D=3D SVM_VMGEXIT_SEV_TIO_OP_RUN) { + if (atomic_inc_return(&sev_tio_devices_num) =3D=3D 1) { + ret =3D alloc_iommu_tlb_flush_ghcb_pages(); + if (ret) + return ret; + } + } else if (atomic_dec_return(&sev_tio_devices_num) =3D=3D 0) { + /* Do cleanup or leave it like this? */ + } + } + /* __sev_get_ghcb() needs IRQs disabled because it uses per-CPU GHCB. */ guard(irqsave)(); =20 @@ -347,6 +396,42 @@ static int vmgexit_psc(struct ghcb *ghcb, struct snp_p= sc_desc *desc) return ret; } =20 +static int ghcb_flush_iommu_tlb(struct ghcb *ghcb) +{ + /* AES encrypts with 16 byte blocks */ + unsigned long s1[BITS_TO_LONGS(128)], s2[BITS_TO_LONGS(128)]; + void *p =3D this_cpu_read(iommu_tlb_flush_ghcb_page), *p2; + struct es_em_ctxt ctxt; + int ret; + + if (!p) + return -ENOMEM; + + /* Keep patterns apart far enough to not share the same cache line */ + p2 =3D (u8 *) p + 2048; + + vc_ghcb_invalidate(ghcb); + + BUILD_BUG_ON(ARRAY_SIZE(s1) !=3D 2); + if (!rdrand_long(s1) || !rdrand_long(s1 + 1) || + !rdrand_long(s2) || !rdrand_long(s2 + 1)) + return -EFAULT; + + memcpy(p, s1, sizeof(s1)); + memcpy(p2, s2, sizeof(s2)); + + pvalidate((unsigned long) p, RMP_PG_SIZE_4K, false); + ret =3D sev_es_ghcb_hv_call(ghcb, &ctxt, SVM_VMGEXIT_IOMMU_TLB_FLUSH, __p= a(p), 0); + pvalidate((unsigned long) p, RMP_PG_SIZE_4K, true); + + /* Ensure that the host change is visible */ + smp_mb(); + + if (!memcmp(p, s1, sizeof(s1)) || memcmp(p2, s2, sizeof(s2))) + return -EFAULT; + + return 0; +} static unsigned long __set_pages_state(struct snp_psc_desc *data, unsigned= long vaddr, unsigned long vaddr_end, int op) { @@ -404,6 +489,13 @@ static unsigned long __set_pages_state(struct snp_psc_= desc *data, unsigned long if (!ghcb || vmgexit_psc(ghcb, data)) sev_es_terminate(SEV_TERM_SET_LINUX, GHCB_TERM_PSC); =20 + if (atomic_read(&sev_tio_devices_num)) { + int ret =3D ghcb_flush_iommu_tlb(ghcb); + + if (ret) + sev_es_terminate(SEV_TERM_SET_LINUX, GHCB_TERM_IOMMUTLB_FLUSH); + } + __sev_put_ghcb(&state); =20 local_irq_restore(flags); --=20 2.55.0