--- v2
+++ vrfc
@@ -26,86 +26,47 @@
should be bounce buffer memory GPA plus with shared_gpa_boundary
reported by CPUID.
-Change since V1:
- - Introduce x86_set_memory_enc static call and so platforms can
- override __set_memory_enc_dec() with their implementation
- - Introduce sev_es_ghcb_hv_call_simple() and share code
- between SEV and Hyper-V code.
- - Not remap monitor pages in the non-SNP isolation VM
- - Make swiotlb_init_io_tlb_mem() return error code and return
- error when dma_map_decrypted() fails.
-
-Change since RFC V4:
- - Introduce dma map decrypted function to remap bounce buffer
- and provide dma map decrypted ops for platform to hook callback.
- - Split swiotlb and dma map decrypted change into two patches
- - Replace vstart with vaddr in swiotlb changes.
-
-Change since RFC 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 RFC v2:
- - Remove not UIO driver in Isolation VM patch
- - Use vmap_pfn() to replace ioremap_page_range function in
- order to avoid exposing symbol ioremap_page_range() and
- ioremap_page_range()
- - Call hv set mem host visibility hvcall in set_memory_encrypted/decrypted()
- - Enable swiotlb force mode instead of adding Hyper-V dma map/unmap hook
- - Fix code style
-
-
-Tianyu Lan (14):
- x86/HV: Initialize GHCB page in Isolation VM
- x86/HV: Initialize shared memory boundary in the Isolation VM.
- x86/set_memory: Add x86_set_memory_enc static call support
- 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
+Tianyu Lan (12):
+ x86/Hyper-V: Add visibility parameter for vmbus_establish_gpadl()
+ x86/Hyper-V: Add new hvcall guest address host visibility support
+ x86/HV: Initialize GHCB page and shared memory boundary
+ HV: Add Write/Read MSR registers via ghcb
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
- DMA: Add dma_map_decrypted/dma_unmap_encrypted() function
- x86/Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
- HV/IOMMU: Enable swiotlb bounce buffer for Isolation VM
+ hv/vmbus: Initialize VMbus ring buffer for Isolation VM
+ x86/Hyper-V: Initialize bounce buffer page cache and list
+ x86/Hyper-V: Add new parameter for
+ vmbus_sendpacket_pagebuffer()/mpb_desc()
+ HV: Add bounce buffer support for Isolation VM
HV/Netvsc: Add Isolation VM support for netvsc driver
- HV/Storvsc: Add Isolation VM support for storvsc driver
+ HV/Storvsc: Add bounce buffer support for Storvsc
arch/x86/hyperv/Makefile | 2 +-
- arch/x86/hyperv/hv_init.c | 81 ++++++--
- arch/x86/hyperv/ivm.c | 295 +++++++++++++++++++++++++++++
- arch/x86/include/asm/hyperv-tlfs.h | 20 ++
- arch/x86/include/asm/mshyperv.h | 87 ++++++++-
- arch/x86/include/asm/set_memory.h | 4 +
- arch/x86/include/asm/sev.h | 3 +
- arch/x86/kernel/cpu/mshyperv.c | 5 +
- arch/x86/kernel/sev-shared.c | 63 +++---
- arch/x86/mm/pat/set_memory.c | 9 +
- arch/x86/xen/pci-swiotlb-xen.c | 3 +-
- drivers/hv/Kconfig | 1 +
- drivers/hv/channel.c | 54 +++++-
- 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 | 65 +++++++
- drivers/net/hyperv/hyperv_net.h | 6 +
- drivers/net/hyperv/netvsc.c | 144 +++++++++++++-
- drivers/net/hyperv/rndis_filter.c | 2 +
- drivers/scsi/storvsc_drv.c | 68 ++++++-
+ arch/x86/hyperv/hv_init.c | 70 +++-
+ arch/x86/hyperv/ivm.c | 257 ++++++++++++
+ arch/x86/include/asm/hyperv-tlfs.h | 22 +
+ arch/x86/include/asm/mshyperv.h | 26 +-
+ arch/x86/kernel/cpu/mshyperv.c | 2 +
+ drivers/hv/Makefile | 2 +-
+ drivers/hv/channel.c | 103 ++++-
+ drivers/hv/channel_mgmt.c | 30 +-
+ drivers/hv/connection.c | 68 +++-
+ drivers/hv/hv.c | 196 ++++++---
+ drivers/hv/hv_bounce.c | 619 +++++++++++++++++++++++++++++
+ drivers/hv/hyperv_vmbus.h | 42 ++
+ drivers/hv/ring_buffer.c | 83 +++-
+ drivers/net/hyperv/hyperv_net.h | 5 +
+ drivers/net/hyperv/netvsc.c | 111 +++++-
+ drivers/scsi/storvsc_drv.c | 46 ++-
+ drivers/uio/uio_hv_generic.c | 13 +-
include/asm-generic/hyperv-tlfs.h | 1 +
- include/asm-generic/mshyperv.h | 53 +++++-
- include/linux/dma-map-ops.h | 9 +
- include/linux/hyperv.h | 17 ++
- include/linux/swiotlb.h | 4 +
- kernel/dma/mapping.c | 22 +++
- kernel/dma/swiotlb.c | 32 +++-
- 30 files changed, 1216 insertions(+), 124 deletions(-)
+ include/asm-generic/mshyperv.h | 24 +-
+ include/linux/hyperv.h | 46 ++-
+ mm/ioremap.c | 1 +
+ mm/vmalloc.c | 1 +
+ 23 files changed, 1614 insertions(+), 156 deletions(-)
create mode 100644 arch/x86/hyperv/ivm.c
+ create mode 100644 drivers/hv/hv_bounce.c
--
2.25.1