mpt2sas: [Resend] Attempt only 2 config_request retry.
PATCH 5/11 mpt2sas: [Resend] Attempt only 2 config_request retry.
Attempt only 2 config_request retry.
---
Signed-off-by Kashyap Desai <[email protected]>
Signed-off-by Eric Moore <[email protected]>
---
drivers/scsi/mpt2sas/mpt2sas_config.c +16 -19
@@ -236,7 +236,6 @@ _config_request(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigRequest_tMpi2ConfigRequest_t *config_request;int r;u8 retry_count; -u8 issue_reset;u16 wait_state_count;if (ioc->config_cmds.status !=MPT2_CMD_NOT_USED ) {
@@ -247,6 +246,12 @@ _config_request(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigRequest_t retry_count =0 ; retry_config: +if (retry_count) { +if (retry_count >2 )/* attempt only 2 retries */ +return -EFAULT ; +printk (MPT2SAS_INFO_FMT "%s: attempting retry (%d)\n" , + ioc->name, __func__, retry_count); + } wait_state_count =0 ; ioc_state =mpt2sas_base_get_iocstate (ioc,1 );while (ioc_state !=MPI2_IOC_STATE_OPERATIONAL ) {
@@ -292,31 +297,23 @@ _config_request(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigRequest_t ioc->name, __func__);_debug_dump_mf (mpi_request,sizeof (Mpi2ConfigRequest_t)/4 ); -if (!(ioc->config_cmds.status &MPT2_CMD_RESET )) - issue_reset =1 ; - goto issue_host_reset; + retry_count++; +if ((ioc->shost_recovery) || + (ioc->config_cmds.status &MPT2_CMD_RESET )) + goto retry_config; +mpt2sas_base_hard_reset_handler (ioc,CAN_SLEEP , +FORCE_BIG_HAMMER ); + goto retry_config; } +if (ioc->config_cmds.status &MPT2_CMD_REPLY_VALID )memcpy (mpi_reply, ioc->config_cmds.reply,sizeof (Mpi2ConfigReply_t));if (retry_count) -printk (MPT2SAS_INFO_FMT "%s: retry completed!!\n" , - ioc->name, __func__); +printk (MPT2SAS_INFO_FMT "%s: retry (%d) completed!!\n" , + ioc->name, __func__, retry_count); ioc->config_cmds.status =MPT2_CMD_NOT_USED ;return r; - - issue_host_reset: -if (issue_reset) -mpt2sas_base_hard_reset_handler (ioc,CAN_SLEEP , -FORCE_BIG_HAMMER ); - ioc->config_cmds.status =MPT2_CMD_NOT_USED ; -if (!retry_count) { -printk (MPT2SAS_INFO_FMT "%s: attempting retry\n" , - ioc->name, __func__); - retry_count++; - goto retry_config; - } -return -EFAULT ; }/**