diff options
author | James Smart <James.Smart@Emulex.Com> | 2006-12-02 13:34:42 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-12-03 10:29:57 -0500 |
commit | c7743956f8cb7b496c05d8444050eba908662a14 (patch) | |
tree | cf4c4bc8484d53d91c3da1aa99ba722bf4a32d5d /drivers/scsi/lpfc/lpfc_scsi.c | |
parent | 146911500f2572fba31895aebacdc4f283208c37 (diff) |
[SCSI] lpfc 8.1.11 : Adjust LOG_FCP logging
Adjust LOG_FCP logging to be more meaningful.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_scsi.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_scsi.c | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index 97ae98dc95d0..125179af470c 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c | |||
@@ -297,8 +297,10 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf *lpfc_cmd) | |||
297 | uint32_t fcpi_parm = lpfc_cmd->cur_iocbq.iocb.un.fcpi.fcpi_parm; | 297 | uint32_t fcpi_parm = lpfc_cmd->cur_iocbq.iocb.un.fcpi.fcpi_parm; |
298 | uint32_t resp_info = fcprsp->rspStatus2; | 298 | uint32_t resp_info = fcprsp->rspStatus2; |
299 | uint32_t scsi_status = fcprsp->rspStatus3; | 299 | uint32_t scsi_status = fcprsp->rspStatus3; |
300 | uint32_t *lp; | ||
300 | uint32_t host_status = DID_OK; | 301 | uint32_t host_status = DID_OK; |
301 | uint32_t rsplen = 0; | 302 | uint32_t rsplen = 0; |
303 | uint32_t logit = LOG_FCP | LOG_FCP_ERROR; | ||
302 | 304 | ||
303 | /* | 305 | /* |
304 | * If this is a task management command, there is no | 306 | * If this is a task management command, there is no |
@@ -310,10 +312,25 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf *lpfc_cmd) | |||
310 | goto out; | 312 | goto out; |
311 | } | 313 | } |
312 | 314 | ||
313 | lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, | 315 | if ((resp_info & SNS_LEN_VALID) && fcprsp->rspSnsLen) { |
314 | "%d:0730 FCP command failed: RSP " | 316 | uint32_t snslen = be32_to_cpu(fcprsp->rspSnsLen); |
315 | "Data: x%x x%x x%x x%x x%x x%x\n", | 317 | if (snslen > SCSI_SENSE_BUFFERSIZE) |
316 | phba->brd_no, resp_info, scsi_status, | 318 | snslen = SCSI_SENSE_BUFFERSIZE; |
319 | |||
320 | if (resp_info & RSP_LEN_VALID) | ||
321 | rsplen = be32_to_cpu(fcprsp->rspRspLen); | ||
322 | memcpy(cmnd->sense_buffer, &fcprsp->rspInfo0 + rsplen, snslen); | ||
323 | } | ||
324 | lp = (uint32_t *)cmnd->sense_buffer; | ||
325 | |||
326 | if (!scsi_status && (resp_info & RESID_UNDER)) | ||
327 | logit = LOG_FCP; | ||
328 | |||
329 | lpfc_printf_log(phba, KERN_WARNING, logit, | ||
330 | "%d:0730 FCP command x%x failed: x%x SNS x%x x%x " | ||
331 | "Data: x%x x%x x%x x%x x%x\n", | ||
332 | phba->brd_no, cmnd->cmnd[0], scsi_status, | ||
333 | be32_to_cpu(*lp), be32_to_cpu(*(lp + 3)), resp_info, | ||
317 | be32_to_cpu(fcprsp->rspResId), | 334 | be32_to_cpu(fcprsp->rspResId), |
318 | be32_to_cpu(fcprsp->rspSnsLen), | 335 | be32_to_cpu(fcprsp->rspSnsLen), |
319 | be32_to_cpu(fcprsp->rspRspLen), | 336 | be32_to_cpu(fcprsp->rspRspLen), |
@@ -328,14 +345,6 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf *lpfc_cmd) | |||
328 | } | 345 | } |
329 | } | 346 | } |
330 | 347 | ||
331 | if ((resp_info & SNS_LEN_VALID) && fcprsp->rspSnsLen) { | ||
332 | uint32_t snslen = be32_to_cpu(fcprsp->rspSnsLen); | ||
333 | if (snslen > SCSI_SENSE_BUFFERSIZE) | ||
334 | snslen = SCSI_SENSE_BUFFERSIZE; | ||
335 | |||
336 | memcpy(cmnd->sense_buffer, &fcprsp->rspInfo0 + rsplen, snslen); | ||
337 | } | ||
338 | |||
339 | cmnd->resid = 0; | 348 | cmnd->resid = 0; |
340 | if (resp_info & RESID_UNDER) { | 349 | if (resp_info & RESID_UNDER) { |
341 | cmnd->resid = be32_to_cpu(fcprsp->rspResId); | 350 | cmnd->resid = be32_to_cpu(fcprsp->rspResId); |
@@ -378,7 +387,7 @@ lpfc_handle_fcp_err(struct lpfc_scsi_buf *lpfc_cmd) | |||
378 | */ | 387 | */ |
379 | } else if ((scsi_status == SAM_STAT_GOOD) && fcpi_parm && | 388 | } else if ((scsi_status == SAM_STAT_GOOD) && fcpi_parm && |
380 | (cmnd->sc_data_direction == DMA_FROM_DEVICE)) { | 389 | (cmnd->sc_data_direction == DMA_FROM_DEVICE)) { |
381 | lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, | 390 | lpfc_printf_log(phba, KERN_WARNING, LOG_FCP | LOG_FCP_ERROR, |
382 | "%d:0734 FCP Read Check Error Data: " | 391 | "%d:0734 FCP Read Check Error Data: " |
383 | "x%x x%x x%x x%x\n", phba->brd_no, | 392 | "x%x x%x x%x x%x\n", phba->brd_no, |
384 | be32_to_cpu(fcpcmd->fcpDl), | 393 | be32_to_cpu(fcpcmd->fcpDl), |