[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH kernel 09/17] dma/swiotlb: Force shared DMA for allocatios from SWIOTLB
- To: <x86@xxxxxxxxxx>
- From: Alexey Kardashevskiy <aik@xxxxxxx>
- Date: Wed, 16 Sep 2026 21:51:49 +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=UGeG5UViy26eddcMIwAbSGGeZIQdkW5rZ6uT6XlTNXE=; b=HgyaDOT99pzp46n9b4AsZkH2yBSKUG7QnzEUnYQY0d3JALrsGd4BQ175ZVfWaB/fAeQ3azTOA777KO3QyiJ5nGvIBZRctI3Hp01RwZB9MNObD9LC7jJVcXxkY6lelR683vnAao7EKvyM0D4ReLoDRIbMe3Ekd0Nkg4RWOIsH1FY7yC4XxFFuVD2NKkwwudPbVFDQEqFTF/Bc/jUMIl9FO0CF5+3XIGlczkJQlvL5frQ5W3h4UJvtcjvEG8TGICB7pcmiH/yVrQx9dlHzfO0x8Iz5iNKpRFxp1+uDRBVqWag6GTNRJ6yGjoPbFC5SZuiYOZXU4birCAg/yPJNAnXP0Q==
- 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==
- 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>
- Delivery-date: Wed, 16 Sep 2026 11:58:21 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
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 <aik@xxxxxxx>
---
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 size,
}
if (is_swiotlb_for_alloc(dev)) {
- page = dma_direct_alloc_swiotlb(dev, size, attrs);
+ page = 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 = false;
+ attrs |= __DMA_ATTR_ALLOC_CC_SHARED;
goto setup_page;
}
return NULL;
--
2.55.0
|