Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
[linux-drm-fsl-dcu.git] / drivers / scsi / qla2xxx / qla_isr.c
index 6c55c3ca8e0564e530646f9893b8030061f55f84..1b60a95adb5064b9edb0762e772a8e44c167d24c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * QLogic Fibre Channel HBA Driver
- * Copyright (c)  2003-2010 QLogic Corporation
+ * Copyright (c)  2003-2011 QLogic Corporation
  *
  * See LICENSE.qla2xxx for copyright and licensing details.
  */
@@ -843,7 +843,10 @@ qla2x00_process_completed_request(struct scsi_qla_host *vha,
                qla_printk(KERN_WARNING, ha,
                    "Invalid SCSI completion handle %d.\n", index);
 
-               set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+               if (IS_QLA82XX(ha))
+                       set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
+               else
+                       set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
                return;
        }
 
@@ -861,7 +864,10 @@ qla2x00_process_completed_request(struct scsi_qla_host *vha,
                qla_printk(KERN_WARNING, ha,
                    "Invalid ISP SCSI completion handle\n");
 
-               set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+               if (IS_QLA82XX(ha))
+                       set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
+               else
+                       set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
        }
 }
 
@@ -878,7 +884,10 @@ qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func,
        if (index >= MAX_OUTSTANDING_COMMANDS) {
                qla_printk(KERN_WARNING, ha,
                    "%s: Invalid completion handle (%x).\n", func, index);
-               set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+               if (IS_QLA82XX(ha))
+                       set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
+               else
+                       set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
                goto done;
        }
        sp = req->outstanding_cmds[index];
@@ -1564,7 +1573,10 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
                    "scsi(%ld): Invalid status handle (0x%x).\n", vha->host_no,
                    sts->handle);
 
-               set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+               if (IS_QLA82XX(ha))
+                       set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
+               else
+                       set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
                qla2xxx_wake_dpc(vha);
                return;
        }
@@ -1794,12 +1806,13 @@ out:
        if (logit)
                DEBUG2(qla_printk(KERN_INFO, ha,
                    "scsi(%ld:%d:%d) FCP command status: 0x%x-0x%x (0x%x) "
-                   "oxid=0x%x cdb=%02x%02x%02x len=0x%x "
+                   "portid=%02x%02x%02x oxid=0x%x cdb=%02x%02x%02x len=0x%x "
                    "rsp_info=0x%x resid=0x%x fw_resid=0x%x\n", vha->host_no,
                    cp->device->id, cp->device->lun, comp_status, scsi_status,
-                   cp->result, ox_id, cp->cmnd[0],
-                   cp->cmnd[1], cp->cmnd[2], scsi_bufflen(cp), rsp_info_len,
-                   resid_len, fw_resid_len));
+                   cp->result, fcport->d_id.b.domain, fcport->d_id.b.area,
+                   fcport->d_id.b.al_pa, ox_id, cp->cmnd[0], cp->cmnd[1],
+                   cp->cmnd[2], scsi_bufflen(cp), rsp_info_len, resid_len,
+                   fw_resid_len));
 
        if (rsp->status_srb == NULL)
                qla2x00_sp_compl(ha, sp);
@@ -1908,13 +1921,17 @@ qla2x00_error_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, sts_entry_t *pkt)
                qla2x00_sp_compl(ha, sp);
 
        } else if (pkt->entry_type == COMMAND_A64_TYPE || pkt->entry_type ==
-           COMMAND_TYPE || pkt->entry_type == COMMAND_TYPE_7) {
+               COMMAND_TYPE || pkt->entry_type == COMMAND_TYPE_7
+               || pkt->entry_type == COMMAND_TYPE_6) {
                DEBUG2(printk("scsi(%ld): Error entry - invalid handle\n",
-                   vha->host_no));
+                       vha->host_no));
                qla_printk(KERN_WARNING, ha,
-                   "Error entry - invalid handle\n");
+                       "Error entry - invalid handle\n");
 
-               set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
+               if (IS_QLA82XX(ha))
+                       set_bit(FCOE_CTX_RESET_NEEDED, &vha->dpc_flags);
+               else
+                       set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
                qla2xxx_wake_dpc(vha);
        }
 }