[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH kernel 10/17] x86, dma: Allow accepted devices to map private memory
- To: <x86@xxxxxxxxxx>
- From: Alexey Kardashevskiy <aik@xxxxxxx>
- Date: Wed, 16 Sep 2026 21:51:50 +1000
- 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)
- 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-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=seol/ZRYlk9PRV/AE/0igGP4M475B8bTrWiYjR7Z5NVQdKgQ8Snt2Iybu43auxQTLklLTDj+/czXGPucm0VRfzcuHZnrtWsnzt9fa564LGCuzyXYB2wboIBU0JiXD2tXbkUw4vznR7ZJdYwkqjhER+nCBLKlLXXLD77GbCUVxF55cBM98geU4KyUAbObpDwGwPlX7OUjvnyQ/ErVPhnYwe35LYF2lgl5JKmTc092duqdYS/xqXIz44O5hNx1ujjZtaQrsdxqobZsO6EZPAGhyMogjMHX3oHd0JDOqY35plSg988uH9TBWL1tdirm3lgBThESwB5WN07dH7u6fQsegQ==
- 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"
- Cc: <linux-kernel@xxxxxxxxxxxxxxx>, <kvm@xxxxxxxxxxxxxxx>, <linux-crypto@xxxxxxxxxxxxxxx>, <linux-pci@xxxxxxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Sean Christopherson <seanjc@xxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Andy Lutomirski <luto@xxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Ashish Kalra <ashish.kalra@xxxxxxx>, Tom Lendacky <thomas.lendacky@xxxxxxx>, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Bjorn Helgaas <bhelgaas@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>, Robin Murphy <robin.murphy@xxxxxxx>, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Lorenzo Stoakes <ljs@xxxxxxxxxx>, "Liam R. Howlett" <liam@xxxxxxxxxxxxx>, Vlastimil Babka <vbabka@xxxxxxxxxx>, Mike Rapoport <rppt@xxxxxxxxxx>, "Suren Baghdasaryan" <surenb@xxxxxxxxxx>, Michal Hocko <mhocko@xxxxxxxx>, "Catalin Marinas" <catalin.marinas@xxxxxxx>, Jini Susan George <jinisusan.george@xxxxxxx>, Kees Cook <kees@xxxxxxxxxx>, Michael Ellerman <mpe@xxxxxxxxxxxxxx>, Nikunj A Dadhania <nikunj@xxxxxxx>, Ard Biesheuvel <ardb@xxxxxxxxxx>, Eric Biggers <ebiggers@xxxxxxxxxx>, Kim Phillips <kim.phillips@xxxxxxx>, Joerg Roedel <jroedel@xxxxxxx>, Ethan Nelson-Moore <enelsonmoore@xxxxxxxxx>, "Tycho Andersen (AMD)" <tycho@xxxxxxxxxx>, "Liam Merwick" <liam.merwick@xxxxxxxxxx>, Michael Kerrisk <mtk.manpages@xxxxxxxxx>, Suresh Siddha <suresh.b.siddha@xxxxxxxxx>, Xiaotian Feng <dfeng@xxxxxxxxxx>, Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx>, Andi Kleen <ak@xxxxxxxxxxxxxxx>, Kiryl Shutsemau <kas@xxxxxxxxxx>, Tony Luck <tony.luck@xxxxxxxxx>, Jason Gunthorpe <jgg@xxxxxxxx>, Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>, Xu Yilun <yilun.xu@xxxxxxxxxxxxxxx>, Carlos López <clopez@xxxxxxx>, Jonathan Cameron <jic23@xxxxxxxxxx>, Jori Koolstra <jkoolstra@xxxxxxxxx>, Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>, "Aneesh Kumar K.V (Arm)" <aneesh.kumar@xxxxxxxxxx>, Ian Campbell <ian.campbell@xxxxxxxxxx>, Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>, Petr Tesarik <ptesarik@xxxxxxxx>, "David Howells" <dhowells@xxxxxxxxxx>, Haavard Skinnemoen <hskinnemoen@xxxxxxxxx>, Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx>, Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>, "Christian Marangi" <ansuelsmth@xxxxxxxxx>, Dave Jiang <dave.jiang@xxxxxxxxx>, "Michael Kelley" <mhklinux@xxxxxxxxxxx>, Ilias Stamatis <ilstam@xxxxxxxxxx>, "Sumanth Korikkar" <sumanthk@xxxxxxxxxxxxx>, Simona Vetter <simona.vetter@xxxxxxxx>, Toshi Kani <toshi.kani@xxxxxx>, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, Vinod Koul <vkoul@xxxxxxxxxx>, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxx>, Anshuman Khandual <anshuman.khandual@xxxxxxx>, Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>, "Palmer Dabbelt" <palmerdabbelt@xxxxxxxxxx>, <linux-coco@xxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, <iommu@xxxxxxxxxxxxxxx>, <linux-mm@xxxxxxxxx>, Alexey Kardashevskiy <aik@xxxxxxx>, <aik@xxxxxxxxx>, Santosh Shukla <santosh.shukla@xxxxxxx>, "Pratik R . Sampat" <prsampat@xxxxxxx>, Scott Soule Cheloha <scott.cheloha@xxxxxxx>, Ackerley Tng <ackerleytng@xxxxxxxxxx>, Fuad Tabba <tabba@xxxxxxxxxx>, Dan Williams <dan.j.williams@xxxxxxxxx>
- Delivery-date: Wed, 16 Sep 2026 11:58:55 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
From: Dan Williams <dan.j.williams@xxxxxxxxx>
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 <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: x86@xxxxxxxxxx
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
[aik: re-added device_cc_accepted()]
Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxx>
---
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);
/*
* For SME, all DMA must be to unencrypted addresses if the
--
2.55.0
|