lpfc 8.1.11 : Adjust LOG_FCP logging
Subsystems (2)
PATCH 4/9 lpfc 8.1.11 : Adjust LOG_FCP logging
Adjust LOG_FCP logging to be more meaningful.
Signed-off-by James Smart <[email protected]>
drivers/scsi/lpfc/lpfc_attr.c +1 -1
@@ -806,7 +806,7 @@ static CLASS_DEVICE_ATTR(lpfc_devloss_tm# LOG_NODE 0x80 Node table events # LOG_MISC 0x400 Miscellaneous events # LOG_SLI 0x800 SLI events -# LOG_CHK_COND 0x1000 FCP Check condition flag +# LOG_FCP_ERROR 0x1000 Only log FCP errors # LOG_LIBDFC 0x2000 LIBDFC events # LOG_ALL_MSG 0xffff LOG all messages */
drivers/scsi/lpfc/lpfc_logmsg.h +1 -1
@@ -28,7 +28,7 @@#define LOG_NODE 0x80/* Node table events */ #define LOG_MISC 0x400/* Miscellaneous events */ #define LOG_SLI 0x800/* SLI events */ -#define LOG_CHK_COND 0x1000/* FCP Check condition flag */ +#define LOG_FCP_ERROR 0x1000/* log errors, not underruns */ #define LOG_LIBDFC 0x2000/* Libdfc events */ #define LOG_ALL_MSG 0xffff/* LOG all messages */
drivers/scsi/lpfc/lpfc_scsi.c +22 -13
@@ -297,8 +297,10 @@ lpfc_handle_fcp_err(struct lpfc_scsi_bufuint32_t fcpi_parm = lpfc_cmd->cur_iocbq.iocb.un.fcpi.fcpi_parm;uint32_t resp_info = fcprsp->rspStatus2;uint32_t scsi_status = fcprsp->rspStatus3; +uint32_t *lp;uint32_t host_status =DID_OK ;uint32_t rsplen =0 ; +uint32_t logit =LOG_FCP |LOG_FCP_ERROR ;/* * If this is a task management command, there is no
@@ -310,10 +312,25 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf goto out; } - lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, - "%d:0730 FCP command failed: RSP " - "Data: x%x x%x x%x x%x x%x x%x\n", - phba->brd_no, resp_info, scsi_status, +if ((resp_info &SNS_LEN_VALID ) && fcprsp->rspSnsLen) { +uint32_t snslen =be32_to_cpu (fcprsp->rspSnsLen); +if (snslen >SCSI_SENSE_BUFFERSIZE ) + snslen =SCSI_SENSE_BUFFERSIZE ; + +if (resp_info &RSP_LEN_VALID ) + rsplen =be32_to_cpu (fcprsp->rspRspLen); +memcpy (cmnd->sense_buffer, &fcprsp->rspInfo0 + rsplen, snslen); + } + lp = (uint32_t *)cmnd->sense_buffer; + +if (!scsi_status && (resp_info &RESID_UNDER )) + logit =LOG_FCP ; + + lpfc_printf_log(phba, KERN_WARNING, logit, + "%d:0730 FCP command x%x failed: x%x SNS x%x x%x " + "Data: x%x x%x x%x x%x x%x\n", + phba->brd_no, cmnd->cmnd[0], scsi_status, + be32_to_cpu(*lp), be32_to_cpu(*(lp + 3)), resp_info, be32_to_cpu(fcprsp->rspResId), be32_to_cpu(fcprsp->rspSnsLen), be32_to_cpu(fcprsp->rspRspLen),
@@ -328,14 +345,6 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf } } -if ((resp_info &SNS_LEN_VALID ) && fcprsp->rspSnsLen) { -uint32_t snslen =be32_to_cpu (fcprsp->rspSnsLen); -if (snslen >SCSI_SENSE_BUFFERSIZE ) - snslen =SCSI_SENSE_BUFFERSIZE ; - -memcpy (cmnd->sense_buffer, &fcprsp->rspInfo0 + rsplen, snslen); - } - cmnd->resid =0 ;if (resp_info &RESID_UNDER ) { cmnd->resid =be32_to_cpu (fcprsp->rspResId);
@@ -378,7 +387,7 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf*/ }else if ((scsi_status ==SAM_STAT_GOOD ) && fcpi_parm && (cmnd->sc_data_direction ==DMA_FROM_DEVICE )) { - lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, + lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_FCP_ERROR, "%d:0734 FCP Read Check Error Data: " "x%x x%x x%x x%x\n", phba->brd_no, be32_to_cpu(fcpcmd->fcpDl),