diff options
author | Doe, YiCheng <[email protected]> | 2011-03-10 14:00:21 -0600 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2011-03-10 13:21:16 -0800 |
commit | 4c418ba9695a24917a1fcfa48f7db3fd76337eb7 (patch) | |
tree | 7a8704fb09901f51f3e9dd8ea55930bfd5ca92ed | |
parent | 4afcc10a65bb1f30c4fa1dec2634df74160a8054 (diff) |
ipmi: Fix IPMI errors due to timing problems
This patch fixes an issue in OpenIPMI module where sometimes an ABORT command
is sent after sending an IPMI request to BMC causing the IPMI request to fail.
Signed-off-by: YiCheng Doe <[email protected]>
Signed-off-by: Corey Minyard <[email protected]>
Acked-by: Tom Mingarelli <[email protected]>
Tested-by: Andy Cress <[email protected]>
Tested-by: Mika Lansirine <[email protected]>
Tested-by: Brian De Wolf <[email protected]>
Cc: Jean Michel Audet <[email protected]>
Cc: Jozef Sudelsky <[email protected]>
Acked-by: Matthew Garrett <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 7855f9f45b8e..62787e30d508 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c @@ -900,6 +900,14 @@ static void sender(void *send_info, printk("**Enqueue: %d.%9.9d\n", t.tv_sec, t.tv_usec); #endif + /* + * last_timeout_jiffies is updated here to avoid + * smi_timeout() handler passing very large time_diff + * value to smi_event_handler() that causes + * the send command to abort. + */ + smi_info->last_timeout_jiffies = jiffies; + mod_timer(&smi_info->si_timer, jiffies + SI_TIMEOUT_JIFFIES); if (smi_info->thread) |