qla2xxx: Issue abort command for outstanding commands during cleanup when only firmwa...
authorGiridhar Malavali <giridhar.malavali@qlogic.com>
Fri, 11 Apr 2014 20:54:12 +0000 (16:54 -0400)
committerChristoph Hellwig <hch@lst.de>
Mon, 19 May 2014 11:31:00 +0000 (13:31 +0200)
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/qla2xxx/qla_nx.c

index 5511e24b1f11ca3e5cc519eec8e84f08febbaa6a..81388e9572379be1ff4552ccfe0b77e6aca94f75 100644 (file)
@@ -3682,8 +3682,10 @@ qla82xx_chip_reset_cleanup(scsi_qla_host_t *vha)
                        for (cnt = 1; cnt < req->num_outstanding_cmds; cnt++) {
                                sp = req->outstanding_cmds[cnt];
                                if (sp) {
-                                       if (!sp->u.scmd.ctx ||
-                                           (sp->flags & SRB_FCP_CMND_DMA_VALID)) {
+                                       if ((!sp->u.scmd.ctx ||
+                                           (sp->flags &
+                                               SRB_FCP_CMND_DMA_VALID)) &&
+                                               !ha->flags.isp82xx_fw_hung) {
                                                spin_unlock_irqrestore(
                                                    &ha->hardware_lock, flags);
                                                if (ha->isp_ops->abort_command(sp)) {