diff options
| author | Kei Tokunaga <tokunaga.keiich@jp.fujitsu.com> | 2010-06-22 19:01:51 +0900 | 
|---|---|---|
| committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 12:03:52 -0500 | 
| commit | 97009a29e8c999def2d1e9ef253c226daf9541af (patch) | |
| tree | 00adca4e2fac97f1348ca7c11e1d885978fef718 | |
| parent | e4bf25fbcc64a87d7dc1d3318ca56c28382757e2 (diff) | |
| download | olio-linux-3.10-97009a29e8c999def2d1e9ef253c226daf9541af.tar.xz olio-linux-3.10-97009a29e8c999def2d1e9ef253c226daf9541af.zip  | |
[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>
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 13 | ||||
| -rw-r--r-- | drivers/message/fusion/mptctl.c | 18 | ||||
| -rw-r--r-- | drivers/message/fusion/mptsas.c | 5 | ||||
| -rw-r--r-- | drivers/message/fusion/mptscsih.c | 12 | 
4 files changed, 33 insertions, 15 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index c36d5b9ff66..e319abcd849 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -5063,8 +5063,9 @@ mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode)  		if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)  			goto out;  		if (!timeleft) { -			printk(KERN_DEBUG "%s: Issuing Reset from %s!!\n", -			    ioc->name, __func__); +			printk(MYIOC_s_WARN_FMT +			       "Issuing Reset from %s!!, doorbell=0x%08x\n", +			       ioc->name, __func__, mpt_GetIocState(ioc, 0));  			mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);  			mpt_free_msg_frame(ioc, mf);  		} @@ -6455,8 +6456,9 @@ out:  	mutex_unlock(&ioc->mptbase_cmds.mutex);  	if (issue_hard_reset) {  		issue_hard_reset = 0; -		printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n", -		    ioc->name, __func__); +		printk(MYIOC_s_WARN_FMT +		       "Issuing Reset from %s!!, doorbell=0x%08x\n", +		       ioc->name, __func__, mpt_GetIocState(ioc, 0));  		if (retry_count == 0) {  			if (mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP) != 0)  				retry_count++; @@ -7146,7 +7148,8 @@ mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag)  	rc = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_RECOVER, sleepFlag);  	if (rc != 0) {  		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 {  		if (ioc->hard_resets < -1)  			ioc->hard_resets++; diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c index 9bd89cebb5a..40046f595f1 100644 --- a/drivers/message/fusion/mptctl.c +++ b/drivers/message/fusion/mptctl.c @@ -954,9 +954,12 @@ retry_wait:  			mpt_free_msg_frame(iocp, mf);  			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); -		else +		} else  			goto retry_wait;  		goto fwdl_out;  	} @@ -2301,6 +2304,10 @@ retry_wait:  			goto done_free_mem;  		}  		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)  				mutex_unlock(&ioc->taskmgmt_cmds.mutex);  			mptctl_timeout_expired(ioc, mf); @@ -2608,9 +2615,12 @@ retry_wait:  			mpt_free_msg_frame(ioc, mf);  			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); -		else +		} else  			goto retry_wait;  		goto out;  	} diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c index 46cc90c9bfc..f705a235300 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c @@ -4816,8 +4816,9 @@ mptsas_broadcast_primative_work(struct fw_event_work *fw_event)  	mutex_unlock(&ioc->taskmgmt_cmds.mutex);  	if (issue_reset) { -		printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n", -		    ioc->name, __func__); +		printk(MYIOC_s_WARN_FMT +		       "Issuing Reset from %s!! doorbell=0x%08x\n", +		       ioc->name, __func__, mpt_GetIocState(ioc, 0));  		mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);  	}  	mptsas_free_fw_event(ioc, fw_event); diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index c5c8fb811f5..dceb67a2182 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c @@ -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)  	if (issue_hard_reset) { -		printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n", -			ioc->name, __func__); +		printk(MYIOC_s_WARN_FMT +		       "Issuing Reset from %s!! doorbell=0x%08x\n", +		       ioc->name, __func__, mpt_GetIocState(ioc, 0));  		retval = mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);  		mpt_free_msg_frame(ioc, mf);  	} @@ -3051,8 +3052,11 @@ mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *io)  			goto out;  		}  		if (!timeleft) { -			printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n", -			    ioc->name, __func__); +			printk(MYIOC_s_WARN_FMT +			       "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_free_msg_frame(ioc, mf);  		}  |