OSDN Git Service

scsi: storvsc: Add Isolation VM support for storvsc driver
authorTianyu Lan <Tianyu.Lan@microsoft.com>
Mon, 13 Dec 2021 07:14:05 +0000 (02:14 -0500)
committerWei Liu <wei.liu@kernel.org>
Mon, 20 Dec 2021 18:01:09 +0000 (18:01 +0000)
commit743b237c3a7b0f5b44aa704aae8a1058877b6322
treeb8f10ea7c066f5f03db0da0644ae77384b77fe1d
parent062a5c4260cdb734a4727230c58e38accf413315
scsi: storvsc: Add Isolation VM support for storvsc driver

In Isolation VM, all shared memory with host needs to mark visible
to host via hvcall. vmbus_establish_gpadl() has already done it for
storvsc rx/tx ring buffer. The page buffer used by vmbus_sendpacket_
mpb_desc() still needs to be handled. Use DMA API(scsi_dma_map/unmap)
to map these memory during sending/receiving packet and return swiotlb
bounce buffer dma address. In Isolation VM, swiotlb  bounce buffer is
marked to be visible to host and the swiotlb force mode is enabled.

Set device's dma min align mask to HV_HYP_PAGE_SIZE - 1 in order to
keep the original data offset in the bounce buffer.

Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
Reviewed-by: Long Li <longli@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/20211213071407.314309-5-ltykernel@gmail.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/hv/vmbus_drv.c
drivers/scsi/storvsc_drv.c
include/linux/hyperv.h