[SCSI] mptfusion: print Doorbell register in a case of hard reset and timeout
Printing Doorbell register in a case of hard reset and timeout should be useful for figuring out the state of the system. Signed-off-by: Kei Tokunaga <tokunaga.keiich@jp.fujitsu.com> Acked-by: "Desai, Kashyap" <Kashyap.Desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
e4bf25fbcc
commit
97009a29e8
|
@ -5063,8 +5063,9 @@ mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode)
|
||||||
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
|
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
|
||||||
goto out;
|
goto out;
|
||||||
if (!timeleft) {
|
if (!timeleft) {
|
||||||
printk(KERN_DEBUG "%s: Issuing Reset from %s!!\n",
|
printk(MYIOC_s_WARN_FMT
|
||||||
ioc->name, __func__);
|
"Issuing Reset from %s!!, doorbell=0x%08x\n",
|
||||||
|
ioc->name, __func__, mpt_GetIocState(ioc, 0));
|
||||||
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
||||||
mpt_free_msg_frame(ioc, mf);
|
mpt_free_msg_frame(ioc, mf);
|
||||||
}
|
}
|
||||||
|
@ -6455,8 +6456,9 @@ out:
|
||||||
mutex_unlock(&ioc->mptbase_cmds.mutex);
|
mutex_unlock(&ioc->mptbase_cmds.mutex);
|
||||||
if (issue_hard_reset) {
|
if (issue_hard_reset) {
|
||||||
issue_hard_reset = 0;
|
issue_hard_reset = 0;
|
||||||
printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n",
|
printk(MYIOC_s_WARN_FMT
|
||||||
ioc->name, __func__);
|
"Issuing Reset from %s!!, doorbell=0x%08x\n",
|
||||||
|
ioc->name, __func__, mpt_GetIocState(ioc, 0));
|
||||||
if (retry_count == 0) {
|
if (retry_count == 0) {
|
||||||
if (mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP) != 0)
|
if (mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP) != 0)
|
||||||
retry_count++;
|
retry_count++;
|
||||||
|
@ -7146,7 +7148,8 @@ mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag)
|
||||||
rc = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_RECOVER, sleepFlag);
|
rc = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_RECOVER, sleepFlag);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
printk(KERN_WARNING MYNAM
|
printk(KERN_WARNING MYNAM
|
||||||
": WARNING - (%d) Cannot recover %s\n", rc, ioc->name);
|
": WARNING - (%d) Cannot recover %s, doorbell=0x%08x\n",
|
||||||
|
rc, ioc->name, mpt_GetIocState(ioc, 0));
|
||||||
} else {
|
} else {
|
||||||
if (ioc->hard_resets < -1)
|
if (ioc->hard_resets < -1)
|
||||||
ioc->hard_resets++;
|
ioc->hard_resets++;
|
||||||
|
|
|
@ -954,9 +954,12 @@ retry_wait:
|
||||||
mpt_free_msg_frame(iocp, mf);
|
mpt_free_msg_frame(iocp, mf);
|
||||||
goto fwdl_out;
|
goto fwdl_out;
|
||||||
}
|
}
|
||||||
if (!timeleft)
|
if (!timeleft) {
|
||||||
|
printk(MYIOC_s_WARN_FMT
|
||||||
|
"FW download timeout, doorbell=0x%08x\n",
|
||||||
|
iocp->name, mpt_GetIocState(iocp, 0));
|
||||||
mptctl_timeout_expired(iocp, mf);
|
mptctl_timeout_expired(iocp, mf);
|
||||||
else
|
} else
|
||||||
goto retry_wait;
|
goto retry_wait;
|
||||||
goto fwdl_out;
|
goto fwdl_out;
|
||||||
}
|
}
|
||||||
|
@ -2301,6 +2304,10 @@ retry_wait:
|
||||||
goto done_free_mem;
|
goto done_free_mem;
|
||||||
}
|
}
|
||||||
if (!timeleft) {
|
if (!timeleft) {
|
||||||
|
printk(MYIOC_s_WARN_FMT
|
||||||
|
"mpt cmd timeout, doorbell=0x%08x"
|
||||||
|
" function=0x%x\n",
|
||||||
|
ioc->name, mpt_GetIocState(ioc, 0), function);
|
||||||
if (function == MPI_FUNCTION_SCSI_TASK_MGMT)
|
if (function == MPI_FUNCTION_SCSI_TASK_MGMT)
|
||||||
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
|
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
|
||||||
mptctl_timeout_expired(ioc, mf);
|
mptctl_timeout_expired(ioc, mf);
|
||||||
|
@ -2608,9 +2615,12 @@ retry_wait:
|
||||||
mpt_free_msg_frame(ioc, mf);
|
mpt_free_msg_frame(ioc, mf);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!timeleft)
|
if (!timeleft) {
|
||||||
|
printk(MYIOC_s_WARN_FMT
|
||||||
|
"HOST INFO command timeout, doorbell=0x%08x\n",
|
||||||
|
ioc->name, mpt_GetIocState(ioc, 0));
|
||||||
mptctl_timeout_expired(ioc, mf);
|
mptctl_timeout_expired(ioc, mf);
|
||||||
else
|
} else
|
||||||
goto retry_wait;
|
goto retry_wait;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4816,8 +4816,9 @@ mptsas_broadcast_primative_work(struct fw_event_work *fw_event)
|
||||||
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
|
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
|
||||||
|
|
||||||
if (issue_reset) {
|
if (issue_reset) {
|
||||||
printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n",
|
printk(MYIOC_s_WARN_FMT
|
||||||
ioc->name, __func__);
|
"Issuing Reset from %s!! doorbell=0x%08x\n",
|
||||||
|
ioc->name, __func__, mpt_GetIocState(ioc, 0));
|
||||||
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
||||||
}
|
}
|
||||||
mptsas_free_fw_event(ioc, fw_event);
|
mptsas_free_fw_event(ioc, fw_event);
|
||||||
|
|
|
@ -1706,8 +1706,9 @@ mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun,
|
||||||
|
|
||||||
CLEAR_MGMT_STATUS(ioc->taskmgmt_cmds.status)
|
CLEAR_MGMT_STATUS(ioc->taskmgmt_cmds.status)
|
||||||
if (issue_hard_reset) {
|
if (issue_hard_reset) {
|
||||||
printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n",
|
printk(MYIOC_s_WARN_FMT
|
||||||
ioc->name, __func__);
|
"Issuing Reset from %s!! doorbell=0x%08x\n",
|
||||||
|
ioc->name, __func__, mpt_GetIocState(ioc, 0));
|
||||||
retval = mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
retval = mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
||||||
mpt_free_msg_frame(ioc, mf);
|
mpt_free_msg_frame(ioc, mf);
|
||||||
}
|
}
|
||||||
|
@ -3051,8 +3052,11 @@ mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *io)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!timeleft) {
|
if (!timeleft) {
|
||||||
printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n",
|
printk(MYIOC_s_WARN_FMT
|
||||||
ioc->name, __func__);
|
"Issuing Reset from %s!! doorbell=0x%08xh"
|
||||||
|
" cmd=0x%02x\n",
|
||||||
|
ioc->name, __func__, mpt_GetIocState(ioc, 0),
|
||||||
|
cmd);
|
||||||
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
|
||||||
mpt_free_msg_frame(ioc, mf);
|
mpt_free_msg_frame(ioc, mf);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue