aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Dupuis <[email protected]>2014-04-11 16:54:07 -0400
committerChristoph Hellwig <[email protected]>2014-05-19 13:30:59 +0200
commitacd3ce880c78d575ed0b2e5670b1f7d7f7a39360 (patch)
tree6c35d0a3eb15c527348dd3050077315bcaaf758e
parentec1937a21ba193b489f669484e2180b9e08f0c7f (diff)
qla2xxx: Do not schedule reset when one is already active when receiving an invalid status handle.
If an adapter reset is already in progress, do not schedule another one when we receive an invalid status handle. Signed-off-by: Chad Dupuis <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 95314ef2e505..7549d09a64da 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -2009,11 +2009,13 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
ql_dbg(ql_dbg_io, vha, 0x3017,
"Invalid status handle (0x%x).\n", sts->handle);
- if (IS_P3P_TYPE(ha))
- set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
- else
- set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
- qla2xxx_wake_dpc(vha);
+ if (!test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags)) {
+ if (IS_P3P_TYPE(ha))
+ set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
+ else
+ set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+ qla2xxx_wake_dpc(vha);
+ }
return;
}