--- v3
+++ v4
@@ -26,6 +26,13 @@
should be bounce buffer memory GPA plus with shared_gpa_boundary
reported by CPUID.
+Change since v3:
+ - Add interface set_memory_decrypted_map() to decrypt memory and
+ map bounce buffer in extra address space
+ - Remove swiotlb remap function and store the remap address
+ returned by set_memory_decrypted_map() in swiotlb mem data structure.
+ - Introduce hv_set_mem_enc() to make code more readable in the __set_memory_enc_dec().
+
Change since v2:
- Remove not UIO driver in Isolation VM patch
- Use vmap_pfn() to replace ioremap_page_range function in
@@ -35,45 +42,51 @@
- Enable swiotlb force mode instead of adding Hyper-V dma map/unmap hook
- Fix code style
-Tianyu Lan (11):
- x86/HV: Initialize GHCB page in Isolation VM
+Tianyu Lan (12):
x86/HV: Initialize shared memory boundary in the Isolation VM.
- x86/Hyper-V: Add new hvcall guest address host visibility support
- HV: Add Write/Read MSR registers via ghcb
+ x86/HV: Add new hvcall guest address host visibility support
+ HV: Mark vmbus ring buffer visible to host in Isolation VM
+ HV: Add Write/Read MSR registers via ghcb page
HV: Add ghcb hvcall support for SNP VM
HV/Vmbus: Add SNP support for VMbus channel initiate message
HV/Vmbus: Initialize VMbus ring buffer for Isolation VM
- swiotlb: Add bounce buffer remap address setting function
+ x86/Swiotlb/HV: Add Swiotlb bounce buffer remap function for HV IVM
HV/IOMMU: Enable swiotlb bounce buffer for Isolation VM
HV/Netvsc: Add Isolation VM support for netvsc driver
HV/Storvsc: Add Isolation VM support for storvsc driver
+ x86/HV: Not set memory decrypted/encrypted during kexec alloc/free
+ page in IVM
arch/x86/hyperv/Makefile | 2 +-
- arch/x86/hyperv/hv_init.c | 70 +++++--
- arch/x86/hyperv/ivm.c | 300 +++++++++++++++++++++++++++++
- arch/x86/include/asm/hyperv-tlfs.h | 24 +++
- arch/x86/include/asm/mshyperv.h | 85 +++++++-
+ arch/x86/hyperv/hv_init.c | 25 +--
+ arch/x86/hyperv/ivm.c | 299 +++++++++++++++++++++++++++++
+ arch/x86/include/asm/hyperv-tlfs.h | 18 ++
+ arch/x86/include/asm/mshyperv.h | 84 +++++++-
+ arch/x86/include/asm/set_memory.h | 2 +
+ arch/x86/include/asm/sev-es.h | 4 +
arch/x86/kernel/cpu/mshyperv.c | 5 +
- arch/x86/mm/pat/set_memory.c | 10 +-
+ arch/x86/kernel/machine_kexec_64.c | 5 +-
+ arch/x86/kernel/sev-es-shared.c | 21 +-
+ arch/x86/mm/pat/set_memory.c | 34 +++-
arch/x86/xen/pci-swiotlb-xen.c | 3 +-
drivers/hv/Kconfig | 1 +
drivers/hv/channel.c | 48 ++++-
- drivers/hv/connection.c | 68 ++++++-
- drivers/hv/hv.c | 122 ++++++++----
+ drivers/hv/connection.c | 71 ++++++-
+ drivers/hv/hv.c | 129 +++++++++----
drivers/hv/hyperv_vmbus.h | 3 +
drivers/hv/ring_buffer.c | 84 ++++++--
drivers/hv/vmbus_drv.c | 3 +
- drivers/iommu/hyperv-iommu.c | 81 ++++++++
+ drivers/iommu/hyperv-iommu.c | 62 ++++++
drivers/net/hyperv/hyperv_net.h | 6 +
- drivers/net/hyperv/netvsc.c | 125 +++++++++++-
- drivers/net/hyperv/rndis_filter.c | 3 +
- drivers/scsi/storvsc_drv.c | 63 +++++-
+ drivers/net/hyperv/netvsc.c | 144 +++++++++++++-
+ drivers/net/hyperv/rndis_filter.c | 2 +
+ drivers/scsi/storvsc_drv.c | 68 ++++++-
include/asm-generic/hyperv-tlfs.h | 1 +
- include/asm-generic/mshyperv.h | 18 +-
+ include/asm-generic/mshyperv.h | 53 ++++-
include/linux/hyperv.h | 16 ++
- include/linux/swiotlb.h | 5 +
- kernel/dma/swiotlb.c | 14 +-
- 25 files changed, 1062 insertions(+), 98 deletions(-)
+ include/linux/swiotlb.h | 4 +
+ kernel/dma/swiotlb.c | 11 +-
+ 29 files changed, 1097 insertions(+), 111 deletions(-)
create mode 100644 arch/x86/hyperv/ivm.c
--