diff options
author | Eddie Wai <eddie.wai@broadcom.com> | 2013-09-17 22:33:10 -0700 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-10-25 09:58:02 +0100 |
commit | 21837896097a6d141c7ac581500ee648c5b4bb89 (patch) | |
tree | 9e85376452bfe06a11990e07d0055ccb818c7212 /drivers/media/mmc | |
parent | 97c2730cb8f039705b17ef12b5a5ed9af6eeb460 (diff) |
[SCSI] bnx2fc: Fixed a SCSI CMD cmpl race condition between ABTS and CLEANUP
In the case when a SCSI_CMD times out, bnx2fc will initiate the sending of the
ABTS. However, if the SCSI layer's SCSI command timer also times out, it'll
instantiate a task abort of the same xid.
The race condition this patch tries to fix is as follows:
SCSI_CMD timeout (20s)
thread 1 thread 2
send ABTS
rx ABTS cmpl
task abort_eh
explicit LOGO since ABTS was engaged
CLEANUP cmpl
SCSI_CMD cmpl (ABTS cmpl)
instantiate RRQ
wait 10s
attempt to send RRQ (because of LOGO, it wouldn't continue)
Note that there is no call to scsi_done for this SCSI_CMD cmpletion
in this path.
The patch changes the path of execution to call scsi_done immediately
instead of instantiating the RRQ.
Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/media/mmc')
0 files changed, 0 insertions, 0 deletions