--- v1
+++ v4
@@ -22,33 +22,59 @@
reported by CPUID.
This patchset is to enable swiotlb bounce buffer for netvsc/storvsc
-in Isolation VM. Add Hyper-V dma ops and provide dma_alloc/free_
-noncontiguous and vmap/vunmap_noncontiguous callback. Allocate
-rx/tx ring via dma_alloc_noncontiguous() and map them into extra
-address space via dma_vmap_noncontiguous().
+in Isolation VM.
+
+This version follows Michael Kelley suggestion in the following link.
+https://lkml.org/lkml/2021/11/24/2044
+
+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 code style of checking GUEST_MEM attribute in the
+ hyperv_cc_platform_has().
+ * Add comment in pci-swiotlb-xen.c to explain why add
+ dependency between hyperv_swiotlb_detect() and pci_
+ xen_swiotlb_detect().
+ * Return directly when fails to allocate Hyper-V swiotlb
+ buffer in the hyperv_iommu_swiotlb_init().
+
+Change since v2:
+ * Remove Hyper-V dma ops and dma_alloc/free_noncontiguous. Add
+ hv_map/unmap_memory() to map/umap netvsc rx/tx ring into extra
+ address space.
+ * Leave mem->vaddr in swiotlb code with phys_to_virt(mem->start)
+ when fail to remap swiotlb memory.
+
+Change since v1:
+ * Add Hyper-V Isolation support check in the cc_platform_has()
+ and return true for guest memory encrypt attr.
+ * Remove hv isolation check in the sev_setup_arch()
Tianyu Lan (5):
- x86/Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
- dma-mapping: Add vmap/vunmap_noncontiguous() callback in dma ops
+ Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM
+ x86/hyper-v: Add hyperv Isolation VM check in the cc_platform_has()
hyperv/IOMMU: Enable swiotlb bounce buffer for Isolation VM
- net: netvsc: Add Isolation VM support for netvsc driver
scsi: storvsc: Add Isolation VM support for storvsc driver
+ hv_netvsc: Add Isolation VM support for netvsc driver
- arch/x86/mm/mem_encrypt.c | 4 +-
- arch/x86/xen/pci-swiotlb-xen.c | 3 +-
- drivers/hv/Kconfig | 1 +
- drivers/hv/vmbus_drv.c | 6 +
- drivers/iommu/hyperv-iommu.c | 164 +++++++++++++++++++++++++
- drivers/net/hyperv/hyperv_net.h | 5 +
- drivers/net/hyperv/netvsc.c | 192 +++++++++++++++++++++++++++---
+ arch/x86/hyperv/ivm.c | 28 ++++++
+ arch/x86/kernel/cc_platform.c | 12 +++
+ arch/x86/xen/pci-swiotlb-xen.c | 12 ++-
+ drivers/hv/hv_common.c | 11 +++
+ drivers/hv/vmbus_drv.c | 4 +
+ drivers/iommu/hyperv-iommu.c | 58 +++++++++++++
+ drivers/net/hyperv/hyperv_net.h | 5 ++
+ drivers/net/hyperv/netvsc.c | 136 +++++++++++++++++++++++++++++-
+ drivers/net/hyperv/netvsc_drv.c | 1 +
drivers/net/hyperv/rndis_filter.c | 2 +
- drivers/scsi/storvsc_drv.c | 37 +++---
- include/linux/dma-map-ops.h | 3 +
- include/linux/hyperv.h | 17 +++
- include/linux/swiotlb.h | 6 +
- kernel/dma/mapping.c | 18 ++-
- kernel/dma/swiotlb.c | 75 ++++++++++--
- 14 files changed, 488 insertions(+), 45 deletions(-)
+ drivers/scsi/storvsc_drv.c | 37 ++++----
+ include/asm-generic/mshyperv.h | 2 +
+ include/linux/hyperv.h | 14 +++
+ include/linux/swiotlb.h | 6 ++
+ kernel/dma/swiotlb.c | 43 +++++++++-
+ 15 files changed, 349 insertions(+), 22 deletions(-)
--
2.25.1