[SCSI] lpfc 8.3.34: Streamline fcp underrun message printing
authorJames Smart <james.smart@emulex.com>
Tue, 14 Aug 2012 18:26:06 +0000 (14:26 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Fri, 14 Sep 2012 16:59:24 +0000 (17:59 +0100)
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/lpfc/lpfc_scsi.c

index bb15888..b2c7d80 100644 (file)
@@ -3476,9 +3476,15 @@ lpfc_handle_fcp_err(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
        }
        lp = (uint32_t *)cmnd->sense_buffer;
 
-       if (!scsi_status && (resp_info & RESID_UNDER) &&
-               vport->cfg_log_verbose & LOG_FCP_UNDER)
-               logit = LOG_FCP_UNDER;
+       /* special handling for under run conditions */
+       if (!scsi_status && (resp_info & RESID_UNDER)) {
+               /* don't log under runs if fcp set... */
+               if (vport->cfg_log_verbose & LOG_FCP)
+                       logit = LOG_FCP_ERROR;
+               /* unless operator says so */
+               if (vport->cfg_log_verbose & LOG_FCP_UNDER)
+                       logit = LOG_FCP_UNDER;
+       }
 
        lpfc_printf_vlog(vport, KERN_WARNING, logit,
                         "9024 FCP command x%x failed: x%x SNS x%x x%x "
@@ -3654,10 +3660,10 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
                        lpfc_cmd->status = IOSTAT_DRIVER_REJECT;
                else if (lpfc_cmd->status >= IOSTAT_CNT)
                        lpfc_cmd->status = IOSTAT_DEFAULT;
-               if (lpfc_cmd->status == IOSTAT_FCP_RSP_ERROR
-                       && !lpfc_cmd->fcp_rsp->rspStatus3
-                       && (lpfc_cmd->fcp_rsp->rspStatus2 & RESID_UNDER)
-                       && !(phba->cfg_log_verbose & LOG_FCP_UNDER))
+               if (lpfc_cmd->status == IOSTAT_FCP_RSP_ERROR &&
+                   !lpfc_cmd->fcp_rsp->rspStatus3 &&
+                   (lpfc_cmd->fcp_rsp->rspStatus2 & RESID_UNDER) &&
+                   !(vport->cfg_log_verbose & LOG_FCP_UNDER))
                        logit = 0;
                else
                        logit = LOG_FCP | LOG_FCP_UNDER;