]> git.hungrycats.org Git - linux/commit
storvsc: do not assume SG list is continuous when doing bounce buffers
authorLong Li <longli@microsoft.com>
Wed, 10 Jan 2018 20:21:29 +0000 (13:21 -0700)
committerSasha Levin <alexander.levin@microsoft.com>
Sun, 21 Jan 2018 14:59:00 +0000 (09:59 -0500)
commit623dfab42becf5c56c9a31b7eaf90cb6eb86459f
treed1e75ba7235b5978ab3f4a60584dc71d7f1ec4e6
parentfeedfe2129e348e075b72a5e3e1c7c52d0c769e4
storvsc: do not assume SG list is continuous when doing bounce buffers

The original patch was made for stable 4.1 and was Acked on 08/22/2017, but for
some reason it never made it to the stable tree.

Change from v1:
Changed comment that this patch is for linux-stable 4.1 and all prior stable
kernels.

storvsc checks the SG list for gaps before passing them to Hyper-v device.
If there are gaps, data is copied to a bounce buffer and a continuous data
buffer is passed to Hyper-V.

The check on gaps assumes SG list is continuous, and not chained. This is
 not always true. Failing the check may result in incorrect I/O data
passed to the Hyper-v device.

This code path is not used post Linux 4.1.

[LL: Backport for 4.1]
Signed-off-by: Long Li <longli@microsoft.com>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
drivers/scsi/storvsc_drv.c