diff options
-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 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); |