diff options
author | Christoph Hellwig <hch@lst.de> | 2022-03-29 17:25:54 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2022-04-18 07:21:10 +0200 |
commit | a3e230926708125205ffd06d3dc2175a8263ae7e (patch) | |
tree | 954654556afdbe766819a66dbb3cd8390343be05 /arch/x86/kernel/pci-dma.c | |
parent | 78013eaadf696d2105982abb4018fbae394ca08f (diff) | |
download | lwn-a3e230926708125205ffd06d3dc2175a8263ae7e.tar.gz lwn-a3e230926708125205ffd06d3dc2175a8263ae7e.zip |
x86: centralize setting SWIOTLB_FORCE when guest memory encryption is enabled
Move enabling SWIOTLB_FORCE for guest memory encryption into common code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Diffstat (limited to 'arch/x86/kernel/pci-dma.c')
-rw-r--r-- | arch/x86/kernel/pci-dma.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c index df96926421be..04140e20ef1a 100644 --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -53,6 +53,14 @@ static void __init pci_swiotlb_detect(void) if (cc_platform_has(CC_ATTR_HOST_MEM_ENCRYPT)) x86_swiotlb_enable = true; + /* + * Guest with guest memory encryption currently perform all DMA through + * bounce buffers as the hypervisor can't access arbitrary VM memory + * that is not explicitly shared with it. + */ + if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)) + swiotlb_force = SWIOTLB_FORCE; + if (swiotlb_force == SWIOTLB_FORCE) x86_swiotlb_enable = true; } |