Pull hyperv updates from Wei Liu: - More patches for Hyper-V isolation VM support (Tianyu Lan) - Bug fixes and clean-up patches from various people * tag 'hyperv-next-signed-20220114' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: scsi: storvsc: Fix storvsc_queuecommand() memory leak x86/hyperv: Properly deal with empty cpumasks in hyperv_flush_tlb_multi() Drivers: hv: vmbus: Initialize request offers message for Isolation VM scsi: storvsc: Fix unsigned comparison to zero swiotlb: Add CONFIG_HAS_IOMEM check around swiotlb_mem_remap() x86/hyperv: Fix definition of hv_ghcb_pg variable Drivers: hv: Fix definition of hypercall input & output arg variables net: netvsc: Add Isolation VM support for netvsc driver scsi: storvsc: Add Isolation VM support for storvsc driver hyper-v: Enable swiotlb bounce buffer for Isolation VM x86/hyper-v: Add hyperv Isolation VM check in the cc_platform_has() swiotlb: Add swiotlb bounce buffer remap function for HV IVM
Showing the changes to include (3 of 18 files). Show all
Unified · Split
| @@ -49,8 +49,8 @@ struct ms_hyperv_info { · 48 unmodified lines | ||
| 49 | 49 | }; |
| 50 | 50 | extern struct ms_hyperv_info ms_hyperv; |
| 51 | 51 | |
| 52 | −extern void __percpu **hyperv_pcpu_input_arg; | |
| 53 | −extern void __percpu **hyperv_pcpu_output_arg; | |
| 52 | +extern void * __percpu *hyperv_pcpu_input_arg; | |
| 53 | +extern void * __percpu *hyperv_pcpu_output_arg; | |
| 54 | 54 | |
| 55 | 55 | extern u64 hv_do_hypercall(u64 control, void *inputaddr, void *outputaddr); |
| 56 | 56 | extern u64 hv_do_fast_hypercall8(u16 control, u64 input8); |
| @@ -269,6 +269,8 @@ bool hv_isolation_type_snp(void); · 212 unmodified lines | ||
| 269 | 269 | u64 hv_ghcb_hypercall(u64 control, void *input, void *output, u32 input_size); |
| 270 | 270 | void hyperv_cleanup(void); |
| 271 | 271 | bool hv_query_ext_cap(u64 cap_query); |
| 272 | +void *hv_map_memory(void *addr, unsigned long size); | |
| 273 | +void hv_unmap_memory(void *addr); | |
| 272 | 274 | #else /* CONFIG_HYPERV */ |
| 273 | 275 | static inline bool hv_is_hyperv_initialized(void) { return false; } |
| 274 | 276 | static inline bool hv_is_hibernation_supported(void) { return false; } |
| @@ -1261,6 +1261,7 @@ struct hv_device { · 1260 unmodified lines | ||
| 1261 | 1261 | |
| 1262 | 1262 | struct vmbus_channel *channel; |
| 1263 | 1263 | struct kset *channels_kset; |
| 1264 | + struct device_dma_parameters dma_parms; | |
| 1264 | 1265 | |
| 1265 | 1266 | /* place holder to keep track of the dir for hv device in debugfs */ |
| 1266 | 1267 | struct dentry *debug_dir; |
| @@ -1583,6 +1584,11 @@ struct hyperv_service_callback { · 316 unmodified lines | ||
| 1583 | 1584 | void (*callback)(void *context); |
| 1584 | 1585 | }; |
| 1585 | 1586 | |
| 1587 | +struct hv_dma_range { | |
| 1588 | + dma_addr_t dma; | |
| 1589 | + u32 mapping_size; | |
| 1590 | +}; | |
| 1591 | + | |
| 1586 | 1592 | #define MAX_SRV_VER 0x7ffffff |
| 1587 | 1593 | extern bool vmbus_prep_negotiate_resp(struct icmsg_hdr *icmsghdrp, u8 *buf, u32 buflen, |
| 1588 | 1594 | const int *fw_version, int fw_vercnt, |
| @@ -73,6 +73,9 @@ extern enum swiotlb_force swiotlb_force; · 72 unmodified lines | ||
| 73 | 73 | * @end: The end address of the swiotlb memory pool. Used to do a quick |
| 74 | 74 | * range check to see if the memory was in fact allocated by this |
| 75 | 75 | * API. |
| 76 | + * @vaddr: The vaddr of the swiotlb memory pool. The swiotlb memory pool | |
| 77 | + * may be remapped in the memory encrypted case and store virtual | |
| 78 | + * address for bounce buffer operation. | |
| 76 | 79 | * @nslabs: The number of IO TLB blocks (in groups of 64) between @start and |
| 77 | 80 | * @end. For default swiotlb, this is command line adjustable via |
| 78 | 81 | * setup_io_tlb_npages. |
| @@ -92,6 +95,7 @@ extern enum swiotlb_force swiotlb_force; · 13 unmodified lines | ||
| 92 | 95 | struct io_tlb_mem { |
| 93 | 96 | phys_addr_t start; |
| 94 | 97 | phys_addr_t end; |
| 98 | + void *vaddr; | |
| 95 | 99 | unsigned long nslabs; |
| 96 | 100 | unsigned long used; |
| 97 | 101 | unsigned int index; |
| @@ -186,4 +190,6 @@ static inline bool is_swiotlb_for_alloc(struct device *dev) · 88 unmodified lines | ||
| 186 | 190 | } |
| 187 | 191 | #endif /* CONFIG_DMA_RESTRICTED_POOL */ |
| 188 | 192 | |
| 193 | +extern phys_addr_t swiotlb_unencrypted_base; | |
| 194 | + | |
| 189 | 195 | #endif /* __LINUX_SWIOTLB_H */ |