Wait for 15 seconds for Doorbell ACK.
Not waiting 15s results in a few resets and kernel panics.
https://bugzilla.redhat.com/show_bug.cgi?id=594505
This is also logical since we wait for 15 seconds to compare if the
state really changed.
Signed-off-by: Shyam Iyer<shyam_iyer@xxxxxxxx>
>From a2cfe7cad6c22849d3561a5466760917c1d3b02a Mon Sep 17 00:00:00 2001
From: Shyam Iyer <shyam_iyer@xxxxxxxx>
Date: Thu, 8 Jul 2010 15:47:53 -0400
Subject: [PATCH] Wait for 15s on doorbell ACK before checking IOC READY state
Not waiting 15s results in a few resets and kernel panics.
https://bugzilla.redhat.com/show_bug.cgi?id=594505
This is also logical since we wait for 15 seconds to compare if the state really changed.
Signed-off-by: Shyam Iyer <shyam_iyer@xxxxxxxx>
---
drivers/message/fusion/mptbase.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index a6a5701..e658a53 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -4208,7 +4208,7 @@ SendIocReset(MPT_ADAPTER *ioc, u8 reset_type, int sleepFlag)
drsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending IOC reset(0x%02x)!\n",
ioc->name, reset_type));
CHIPREG_WRITE32(&ioc->chip->Doorbell, reset_type<<MPI_DOORBELL_FUNCTION_SHIFT);
- if ((r = WaitForDoorbellAck(ioc, 5, sleepFlag)) < 0)
+ if ((r = WaitForDoorbellAck(ioc, 15, sleepFlag)) < 0)
return r;
/* FW ACK'd request, wait for READY state
--
1.6.6.1