summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Minyard <cminyard@mvista.com>2014-04-14 09:46:52 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-07 13:25:30 -0700
commit7cbb2301ae96a8c8874653904cb0de9860322f89 (patch)
tree293c1784573c095deca0543c4f2257a7f4415bf3
parent935c69acf0724b0c70df6a40d2d61e5cf350ee00 (diff)
downloadlinux-3.10-7cbb2301ae96a8c8874653904cb0de9860322f89.tar.gz
linux-3.10-7cbb2301ae96a8c8874653904cb0de9860322f89.tar.bz2
linux-3.10-7cbb2301ae96a8c8874653904cb0de9860322f89.zip
ipmi: Reset the KCS timeout when starting error recovery
commit eb6d78ec213e6938559b801421d64714dafcf4b2 upstream. The OBF timer in KCS was not reset in one situation when error recovery was started, resulting in an immediate timeout. Reported-by: Bodo Stroesser <bstroesser@ts.fujitsu.com> Signed-off-by: Corey Minyard <cminyard@mvista.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/char/ipmi/ipmi_kcs_sm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/char/ipmi/ipmi_kcs_sm.c b/drivers/char/ipmi/ipmi_kcs_sm.c
index e53fc24c6af..e1ddcf93851 100644
--- a/drivers/char/ipmi/ipmi_kcs_sm.c
+++ b/drivers/char/ipmi/ipmi_kcs_sm.c
@@ -251,8 +251,9 @@ static inline int check_obf(struct si_sm_data *kcs, unsigned char status,
if (!GET_STATUS_OBF(status)) {
kcs->obf_timeout -= time;
if (kcs->obf_timeout < 0) {
- start_error_recovery(kcs, "OBF not ready in time");
- return 1;
+ kcs->obf_timeout = OBF_RETRY_TIMEOUT;
+ start_error_recovery(kcs, "OBF not ready in time");
+ return 1;
}
return 0;
}