diff options
| author | Kashyap, Desai <kashyap.desai@lsi.com> | 2009-05-29 16:53:14 +0530 | 
|---|---|---|
| committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-09 17:43:32 -0500 | 
| commit | 71278192a887d7da3e768809c6fe9979d172ff23 (patch) | |
| tree | 42527dfd52dfb1a622156cde4afe44e2ad80a7a6 | |
| parent | 2f187862e579f1f5e883188cab6bd867cb60387f (diff) | |
| download | olio-linux-3.10-71278192a887d7da3e768809c6fe9979d172ff23.tar.xz olio-linux-3.10-71278192a887d7da3e768809c6fe9979d172ff23.zip  | |
[SCSI] mpt fusion: Put IOC into ready state if it not already in ready state
Signed-off-by: Kashyap Desai <kadesai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 8f04d37fb35..9f6b315624a 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -2667,6 +2667,22 @@ mpt_adapter_disable(MPT_ADAPTER *ioc)  		}  	} +	/* +	 * Put the controller into ready state (if its not already) +	 */ +	if (mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_READY) { +		if (!SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, +		    CAN_SLEEP)) { +			if (mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_READY) +				printk(MYIOC_s_ERR_FMT "%s:  IOC msg unit " +				    "reset failed to put ioc in ready state!\n", +				    ioc->name, __func__); +		} else +			printk(MYIOC_s_ERR_FMT "%s:  IOC msg unit reset " +			    "failed!\n", ioc->name, __func__); +	} + +  	/* Disable adapter interrupts! */  	synchronize_irq(ioc->pcidev->irq);  	CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);  |