diff options
author | Ben Hutchings <benh@debian.org> | 2012-10-21 02:43:35 +0000 |
---|---|---|
committer | Ben Hutchings <benh@debian.org> | 2012-10-21 02:43:35 +0000 |
commit | 6984ee25108adb7b898b3f3d69635831ef762d2b (patch) | |
tree | 25568725bafb1541c72232b5b65f436e5a9939f3 | |
parent | 24b6ca0b3af650f6f51e063e35d155008226564a (diff) | |
download | kernel_replicant_linux-6984ee25108adb7b898b3f3d69635831ef762d2b.tar.gz kernel_replicant_linux-6984ee25108adb7b898b3f3d69635831ef762d2b.tar.bz2 kernel_replicant_linux-6984ee25108adb7b898b3f3d69635831ef762d2b.zip |
[x86] storvsc: Account for in-transit packets in the RESET path
svn path=/dists/sid/linux/; revision=19440
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch | 35 | ||||
-rw-r--r-- | debian/patches/series | 1 |
3 files changed, 37 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index bbf5d2243520..77231bd99cd3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -93,6 +93,7 @@ linux (3.2.32-1) UNRELEASED; urgency=low - rt: rwsem/rwlock: lockdep annotations - sched: Better debug output for might sleep - stomp_machine: Use mutex_trylock when called from inactive cpu + * [x86] storvsc: Account for in-transit packets in the RESET path -- Ben Hutchings <ben@decadent.org.uk> Sat, 29 Sep 2012 14:19:46 +0200 diff --git a/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch b/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch new file mode 100644 index 000000000000..1cc4be568951 --- /dev/null +++ b/debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch @@ -0,0 +1,35 @@ +From: "K. Y. Srinivasan" <kys@microsoft.com> +Date: Tue, 2 Oct 2012 11:03:31 -0700 +Subject: [SCSI] storvsc: Account for in-transit packets in the RESET path + +commit 5c1b10ab7f93d24f29b5630286e323d1c5802d5c upstream. + +Properly account for I/O in transit before returning from the RESET call. +In the absense of this patch, we could have a situation where the host may +respond to a command that was issued prior to the issuance of the RESET +command at some arbitrary time after responding to the RESET command. +Currently, the host does not do anything with the RESET command. + +Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> +Signed-off-by: James Bottomley <JBottomley@Parallels.com> +--- + drivers/scsi/storvsc_drv.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c +index 528d52b..0144078 100644 +--- a/drivers/scsi/storvsc_drv.c ++++ b/drivers/scsi/storvsc_drv.c +@@ -1221,7 +1221,12 @@ static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd) + /* + * At this point, all outstanding requests in the adapter + * should have been flushed out and return to us ++ * There is a potential race here where the host may be in ++ * the process of responding when we return from here. ++ * Just wait for all in-transit packets to be accounted for ++ * before we return from here. + */ ++ storvsc_wait_to_drain(stor_device); + + return SUCCESS; + } diff --git a/debian/patches/series b/debian/patches/series index 8649376f57b6..8647dc91ee0e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -401,3 +401,4 @@ bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch debian/iwlwifi-do-not-request-unreleased-firmware.patch debian/hid-avoid-ABI-change-in-3.2.31.patch debian/xfrm-avoid-ABI-change-in-3.2.31.patch +bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch |