diff options
author | Chad Dupuis <chad.dupuis@qlogic.com> | 2013-02-08 10:57:46 +0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-02-22 16:24:42 +0400 |
commit | 1bcc46cb74d3ba7471eac57af8931ca1a03e7b36 (patch) | |
tree | 52439be1bf861588368e690058754cc2bee170fb /drivers/scsi/qla2xxx/qla_bsg.c | |
parent | 37f489b580929c542dddc4bb6389d3aeb9bd39be (diff) | |
download | linux-1bcc46cb74d3ba7471eac57af8931ca1a03e7b36.tar.xz |
[SCSI] qla2xxx: Reject loopback request if one is already in progress.
If another function on the port has initiated a loopback operation do not
process the current request.
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_bsg.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_bsg.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c index f7cb6a3fa7d4..5b49766e0ae7 100644 --- a/drivers/scsi/qla2xxx/qla_bsg.c +++ b/drivers/scsi/qla2xxx/qla_bsg.c @@ -746,6 +746,14 @@ qla2x00_process_loopback(struct fc_bsg_job *bsg_job) goto done_free_dma_rsp; } + if ((config[0] & INTERNAL_LOOPBACK_MASK) != 0) { + ql_dbg(ql_dbg_user, vha, 0x70c4, + "Loopback operation already in " + "progress.\n"); + rval = -EAGAIN; + goto done_free_dma_rsp; + } + ql_dbg(ql_dbg_user, vha, 0x70c0, "elreq.options=%04x\n", elreq.options); |