From 86f169a1c6199f95c133820915fd8379fcd773e8 Mon Sep 17 00:00:00 2001 From: "Kashyap, Desai" Date: Fri, 29 May 2009 16:53:14 +0530 Subject: [PATCH] --- yaml --- r: 148151 b: refs/heads/master c: 71278192a887d7da3e768809c6fe9979d172ff23 h: refs/heads/master i: 148149: 8af3dcc3dc2d93f4e3ea334601f8bfccb630f2d7 148147: e60e861c2c2b323cd1e90828f3968a4e8d89d195 148143: f84dd817e37c30cb6075f7092fef8b99a65d02df v: v3 --- [refs] | 2 +- trunk/drivers/message/fusion/mptbase.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1faf9a289842..eef2fc1b65cb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2f187862e579f1f5e883188cab6bd867cb60387f +refs/heads/master: 71278192a887d7da3e768809c6fe9979d172ff23 diff --git a/trunk/drivers/message/fusion/mptbase.c b/trunk/drivers/message/fusion/mptbase.c index 8f04d37fb359..9f6b315624aa 100644 --- a/trunk/drivers/message/fusion/mptbase.c +++ b/trunk/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);