[x86] storvsc: Account for in-transit packets in the RESET path
svn path=/dists/sid/linux/; revision=19440
This commit is contained in:
parent
24b6ca0b3a
commit
6984ee2510
|
@ -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
|
||||
|
||||
|
|
35
debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch
vendored
Normal file
35
debian/patches/bugfix/x86/SCSI-storvsc-Account-for-in-transit-packets-in-the-R.patch
vendored
Normal file
|
@ -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;
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue