Inter-revision diff: patch 1

Comparing v3 (message) to v4 (message)

--- v3
+++ v4
@@ -17,6 +17,12 @@
 
 Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
 ---
+Change since v3:
+	* Fix boot up failure on the host with mem_encrypt=on.
+	  Move calloing of set_memory_decrypted() back from
+	  swiotlb_init_io_tlb_mem to swiotlb_late_init_with_tbl()
+	  and rmem_swiotlb_device_init().
+
 Change since v2:
 	* Leave mem->vaddr with phys_to_virt(mem->start) when fail
 	  to remap swiotlb memory.
@@ -26,8 +32,8 @@
 	* Make swiotlb_init_io_tlb_mem() back to return void.
 ---
  include/linux/swiotlb.h |  6 ++++++
- kernel/dma/swiotlb.c    | 47 ++++++++++++++++++++++++++++++++++++-----
- 2 files changed, 48 insertions(+), 5 deletions(-)
+ kernel/dma/swiotlb.c    | 43 +++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 47 insertions(+), 2 deletions(-)
 
 diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
 index 569272871375..f6c3638255d5 100644
@@ -59,7 +65,7 @@
 +
  #endif /* __LINUX_SWIOTLB_H */
 diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
-index 8e840fbbed7c..adb9d06af5c8 100644
+index 8e840fbbed7c..34e6ade4f73c 100644
 --- a/kernel/dma/swiotlb.c
 +++ b/kernel/dma/swiotlb.c
 @@ -50,6 +50,7 @@
@@ -121,7 +127,7 @@
  }
  
  static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
-@@ -196,7 +225,18 @@ static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
+@@ -196,7 +225,17 @@ static void swiotlb_init_io_tlb_mem(struct io_tlb_mem *mem, phys_addr_t start,
  		mem->slots[i].orig_addr = INVALID_PHYS_ADDR;
  		mem->slots[i].alloc_size = 0;
  	}
@@ -133,21 +139,12 @@
 +	if (swiotlb_unencrypted_base)
 +		return;
 +
-+	set_memory_decrypted((unsigned long)vaddr, bytes >> PAGE_SHIFT);
  	memset(vaddr, 0, bytes);
 +	mem->vaddr = vaddr;
 +	return;
  }
  
  int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose)
-@@ -318,7 +358,6 @@ swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs)
- 	if (!mem->slots)
- 		return -ENOMEM;
- 
--	set_memory_decrypted((unsigned long)tlb, bytes >> PAGE_SHIFT);
- 	swiotlb_init_io_tlb_mem(mem, virt_to_phys(tlb), nslabs, true);
- 
- 	swiotlb_print_info();
 @@ -371,7 +410,7 @@ static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, size_t size
  	phys_addr_t orig_addr = mem->slots[index].orig_addr;
  	size_t alloc_size = mem->slots[index].alloc_size;
@@ -157,15 +154,6 @@
  	unsigned int tlb_offset, orig_addr_offset;
  
  	if (orig_addr == INVALID_PHYS_ADDR)
-@@ -806,8 +845,6 @@ static int rmem_swiotlb_device_init(struct reserved_mem *rmem,
- 			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;
 -- 
 2.25.1
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help