qla2xxx: Do not schedule reset when one is already active when receiving an invalid...
authorChad Dupuis <chad.dupuis@qlogic.com>
Fri, 11 Apr 2014 20:54:07 +0000 (16:54 -0400)
committerChristoph Hellwig <hch@lst.de>
Mon, 19 May 2014 11:30:59 +0000 (13:30 +0200)
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 <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/qla2xxx/qla_isr.c

index 95314ef2e5050b402071f22b25c6323fdf7f9502..7549d09a64da71495a67697d9ac846a94ac025e6 100644 (file)
@@ -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;
        }