aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r--drivers/scsi/ipr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 5b6ffe18bc7d..44ce9f5218a8 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -4453,12 +4453,13 @@ static void ipr_dump_ioasa(struct ipr_ioa_cfg *ioa_cfg,
4453{ 4453{
4454 int i; 4454 int i;
4455 u16 data_len; 4455 u16 data_len;
4456 u32 ioasc; 4456 u32 ioasc, fd_ioasc;
4457 struct ipr_ioasa *ioasa = &ipr_cmd->ioasa; 4457 struct ipr_ioasa *ioasa = &ipr_cmd->ioasa;
4458 __be32 *ioasa_data = (__be32 *)ioasa; 4458 __be32 *ioasa_data = (__be32 *)ioasa;
4459 int error_index; 4459 int error_index;
4460 4460
4461 ioasc = be32_to_cpu(ioasa->ioasc) & IPR_IOASC_IOASC_MASK; 4461 ioasc = be32_to_cpu(ioasa->ioasc) & IPR_IOASC_IOASC_MASK;
4462 fd_ioasc = be32_to_cpu(ioasa->fd_ioasc) & IPR_IOASC_IOASC_MASK;
4462 4463
4463 if (0 == ioasc) 4464 if (0 == ioasc)
4464 return; 4465 return;
@@ -4466,7 +4467,10 @@ static void ipr_dump_ioasa(struct ipr_ioa_cfg *ioa_cfg,
4466 if (ioa_cfg->log_level < IPR_DEFAULT_LOG_LEVEL) 4467 if (ioa_cfg->log_level < IPR_DEFAULT_LOG_LEVEL)
4467 return; 4468 return;
4468 4469
4469 error_index = ipr_get_error(ioasc); 4470 if (ioasc == IPR_IOASC_BUS_WAS_RESET && fd_ioasc)
4471 error_index = ipr_get_error(fd_ioasc);
4472 else
4473 error_index = ipr_get_error(ioasc);
4470 4474
4471 if (ioa_cfg->log_level < IPR_MAX_LOG_LEVEL) { 4475 if (ioa_cfg->log_level < IPR_MAX_LOG_LEVEL) {
4472 /* Don't log an error if the IOA already logged one */ 4476 /* Don't log an error if the IOA already logged one */