From: Eddie Wai Date: Wed, 18 Sep 2013 05:33:10 +0000 (-0700) Subject: [SCSI] bnx2fc: Fixed a SCSI CMD cmpl race condition between ABTS and CLEANUP X-Git-Tag: v3.13-rc1~99^2~70 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21837896097a6d141c7ac581500ee648c5b4bb89;p=pandora-kernel.git [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 Signed-off-by: James Bottomley --- Reading git-diff-tree failed