| From eb6d78ec213e6938559b801421d64714dafcf4b2 Mon Sep 17 00:00:00 2001 |
| From: Corey Minyard <cminyard@mvista.com> |
| Date: Mon, 14 Apr 2014 09:46:52 -0500 |
| Subject: ipmi: Reset the KCS timeout when starting error recovery |
| |
| From: Corey Minyard <cminyard@mvista.com> |
| |
| 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> |
| |
| --- |
| drivers/char/ipmi/ipmi_kcs_sm.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- 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 |
| 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; |
| } |