aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptbase.c
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2009-05-29 07:23:14 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-06-09 18:43:32 -0400
commit71278192a887d7da3e768809c6fe9979d172ff23 (patch)
tree42527dfd52dfb1a622156cde4afe44e2ad80a7a6 /drivers/message/fusion/mptbase.c
parent2f187862e579f1f5e883188cab6bd867cb60387f (diff)
[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>
Diffstat (limited to 'drivers/message/fusion/mptbase.c')
-rw-r--r--drivers/message/fusion/mptbase.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 8f04d37fb359..9f6b315624aa 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -2667,6 +2667,22 @@ mpt_adapter_disable(MPT_ADAPTER *ioc)
2667 } 2667 }
2668 } 2668 }
2669 2669
2670 /*
2671 * Put the controller into ready state (if its not already)
2672 */
2673 if (mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_READY) {
2674 if (!SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET,
2675 CAN_SLEEP)) {
2676 if (mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_READY)
2677 printk(MYIOC_s_ERR_FMT "%s: IOC msg unit "
2678 "reset failed to put ioc in ready state!\n",
2679 ioc->name, __func__);
2680 } else
2681 printk(MYIOC_s_ERR_FMT "%s: IOC msg unit reset "
2682 "failed!\n", ioc->name, __func__);
2683 }
2684
2685
2670 /* Disable adapter interrupts! */ 2686 /* Disable adapter interrupts! */
2671 synchronize_irq(ioc->pcidev->irq); 2687 synchronize_irq(ioc->pcidev->irq);
2672 CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF); 2688 CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);