[PATCH v3] x86/pci-dma: add a SWIOTLB_ANY flag to lift the low mem limitation

From: Jun Miao

Date: Thu Feb 12 2026 - 04:37:19 EST


Intel TDX guest wants to allocate a swiotlb buffer that is not restricted to
low memory for the trusted hypervisor scheme. Adding a new flag will be used
in swiotlb_memblock_alloc() to allow allocation of SWIOTLB memory beyond low
memory restriction.

Power SVM already supports this, but X86 still faces the same limitation.
Commit: 8ba2ed1be9 (swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction)

Reviewed-by: Aakarsh Jain <aakarsh.jain@xxxxxxxxxxxxxxxx>
Tested-by: Aakarsh Jain <aakarsh.jain@xxxxxxxxxxxxxxxx>
Signed-off-by: Jun Miao <jun.miao@xxxxxxxxx>
---

V1 -> V2:
1.Updated commit message and description.
2.Add Reviewed and Tested.

V1 Latest Feedback : https://lists.openwall.net/linux-kernel/2026/02/11/483

v2 -> v3:
We can alloc 4GB with the dynamic swiotlb, rather than 1GB.
1G is not correct. So change the commit log.

---
arch/x86/kernel/pci-dma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 6267363e0189..73b9320c4a7d 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -61,7 +61,7 @@ static void __init pci_swiotlb_detect(void)
*/
if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)) {
x86_swiotlb_enable = true;
- x86_swiotlb_flags |= SWIOTLB_FORCE;
+ x86_swiotlb_flags |= SWIOTLB_ANY | SWIOTLB_FORCE;
}
}
#else
--
2.47.1