scsi: storvsc: Support PAGE_SIZE larger than 4K
authorBoqun Feng <boqun.feng@gmail.com>
Wed, 16 Sep 2020 03:48:17 +0000 (11:48 +0800)
committerWei Liu <wei.liu@kernel.org>
Mon, 28 Sep 2020 08:57:28 +0000 (08:57 +0000)
commit8f43710543ef305904c18072d14ace43c74b7743
treeb330655f5e7a1a53065aa65c459c18b3509c8886
parent061dc93ef602dc8cdc719375538992b8f1e53478
scsi: storvsc: Support PAGE_SIZE larger than 4K

Hyper-V always use 4k page size (HV_HYP_PAGE_SIZE), so when
communicating with Hyper-V, a guest should always use HV_HYP_PAGE_SIZE
as the unit for page related data. For storvsc, the data is
vmbus_packet_mpb_array. And since in scsi_cmnd, sglist of pages (in unit
of PAGE_SIZE) is used, we need convert pages in the sglist of scsi_cmnd
into Hyper-V pages in vmbus_packet_mpb_array.

This patch does the conversion by dividing pages in sglist into Hyper-V
pages, offset and indexes in vmbus_packet_mpb_array are recalculated
accordingly.

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/20200916034817.30282-12-boqun.feng@gmail.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/scsi/storvsc_drv.c