]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
lpfc: Fix scsi task management error message.
authorJames Smart <james.smart@avagotech.com>
Fri, 22 May 2015 14:42:41 +0000 (10:42 -0400)
committerJames Bottomley <JBottomley@Odin.com>
Sat, 13 Jun 2015 15:23:40 +0000 (08:23 -0700)
TMF's were getting error messages on FCP_RSP errors (underrun). Underruns
aren't meaningful in the scenario. Change the error message to filter out
these response check errors, and don't unconditionally mark the cmd as
in error.

Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com>
Signed-off-by: James Smart <james.smart@avagotech.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/lpfc/lpfc_scsi.c

index b3b195ff64fec79318a932ecb978f2554a7cf350..e5eb40d2c5128fd64b2efa54ff4a6a9921664cba 100644 (file)
@@ -5011,13 +5011,16 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct lpfc_rport_data *rdata,
                                          iocbq, iocbqrsp, lpfc_cmd->timeout);
        if ((status != IOCB_SUCCESS) ||
            (iocbqrsp->iocb.ulpStatus != IOSTAT_SUCCESS)) {
-               lpfc_printf_vlog(vport, KERN_ERR, LOG_FCP,
-                        "0727 TMF %s to TGT %d LUN %llu failed (%d, %d) "
-                        "iocb_flag x%x\n",
-                        lpfc_taskmgmt_name(task_mgmt_cmd),
-                        tgt_id, lun_id, iocbqrsp->iocb.ulpStatus,
-                        iocbqrsp->iocb.un.ulpWord[4],
-                        iocbq->iocb_flag);
+               if (status != IOCB_SUCCESS ||
+                   iocbqrsp->iocb.ulpStatus != IOSTAT_FCP_RSP_ERROR)
+                       lpfc_printf_vlog(vport, KERN_ERR, LOG_FCP,
+                                        "0727 TMF %s to TGT %d LUN %llu "
+                                        "failed (%d, %d) iocb_flag x%x\n",
+                                        lpfc_taskmgmt_name(task_mgmt_cmd),
+                                        tgt_id, lun_id,
+                                        iocbqrsp->iocb.ulpStatus,
+                                        iocbqrsp->iocb.un.ulpWord[4],
+                                        iocbq->iocb_flag);
                /* if ulpStatus != IOCB_SUCCESS, then status == IOCB_SUCCESS */
                if (status == IOCB_SUCCESS) {
                        if (iocbqrsp->iocb.ulpStatus == IOSTAT_FCP_RSP_ERROR)
@@ -5031,7 +5034,6 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct lpfc_rport_data *rdata,
                } else {
                        ret = FAILED;
                }
-               lpfc_cmd->status = IOSTAT_DRIVER_REJECT;
        } else
                ret = SUCCESS;