diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index a4f023bd5d2..a6a57011ba6 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -6456,10 +6456,15 @@ out:  		issue_hard_reset = 0;  		printk(MYIOC_s_WARN_FMT "Issuing Reset from %s!!\n",  		    ioc->name, __func__); -		mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP); +		if (retry_count == 0) { +			if (mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP) != 0) +				retry_count++; +		} else +			mpt_HardResetHandler(ioc, CAN_SLEEP); +  		mpt_free_msg_frame(ioc, mf);  		/* attempt one retry for a timed out command */ -		if (!retry_count) { +		if (retry_count < 2) {  			printk(MYIOC_s_INFO_FMT  			    "Attempting Retry Config request"  			    " type 0x%x, page 0x%x,"  |