--- v12
+++ v14
@@ -11,6 +11,8 @@
Signed-off-by: Claire Chang <tientzu@chromium.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
+Tested-by: Stefano Stabellini <sstabellini@kernel.org>
+Tested-by: Will Deacon <will@kernel.org>
---
include/linux/swiotlb.h | 3 +-
kernel/dma/Kconfig | 14 ++++++++
@@ -57,7 +59,7 @@
# Should be selected if we can mmap non-coherent mappings to userspace.
# The only thing that is really required is a way to set an uncached bit
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
-index d3d4f1a25fee..8a4d4ad4335e 100644
+index 273b21090ee8..1aef294c82b5 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -39,6 +39,13 @@
@@ -74,7 +76,7 @@
#include <asm/io.h>
#include <asm/dma.h>
-@@ -735,4 +742,73 @@ bool swiotlb_free(struct device *dev, struct page *page, size_t size)
+@@ -736,4 +743,73 @@ bool swiotlb_free(struct device *dev, struct page *page, size_t size)
return true;
}
@@ -94,11 +96,11 @@
+ if (!mem)
+ return -ENOMEM;
+
++ set_memory_decrypted((unsigned long)phys_to_virt(rmem->base),
++ rmem->size >> PAGE_SHIFT);
+ swiotlb_init_io_tlb_mem(mem, rmem->base, nslabs, false);
+ mem->force_bounce = true;
+ mem->for_alloc = true;
-+ set_memory_decrypted((unsigned long)phys_to_virt(rmem->base),
-+ rmem->size >> PAGE_SHIFT);
+
+ rmem->priv = mem;
+
@@ -149,5 +151,5 @@
+RESERVEDMEM_OF_DECLARE(dma, "restricted-dma-pool", rmem_swiotlb_setup);
#endif /* CONFIG_DMA_RESTRICTED_POOL */
--
-2.32.0.272.g935e593368-goog
+2.32.0.288.g62a8d224e6-goog