From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752627Ab1CJVAx (ORCPT ); Thu, 10 Mar 2011 16:00:53 -0500 Received: from vms173005pub.verizon.net ([206.46.173.5]:59114 "EHLO vms173005pub.verizon.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751125Ab1CJVAw (ORCPT ); Thu, 10 Mar 2011 16:00:52 -0500 X-Greylist: delayed 3603 seconds by postgrey-1.27 at vger.kernel.org; Thu, 10 Mar 2011 16:00:52 EST From: Corey Minyard To: Linus Torvalds Cc: OpenIPMI Developers , Linux Kernel , YiCheng Doe , Tom Mingarelli , Andy Cress , Mika Lansirine , Brian De Wolf , Jean Michel Audet , Jozef Sudelsky , Matthew Garrett , Corey Minyard Subject: [PATCH] ipmi: Fix IPMI errors due to timing problems Date: Thu, 10 Mar 2011 14:00:21 -0600 Message-id: <1299787221-19542-1-git-send-email-minyard@acm.org> X-Mailer: git-send-email 1.7.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Doe, YiCheng 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 Signed-off-by: Corey Minyard Acked-by: Tom Mingarelli Tested-by: Andy Cress Tested-by: Mika Lansirine Tested-by: Brian De Wolf Cc: Jean Michel Audet Cc: Jozef Sudelsky Cc: Matthew Garrett --- 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 7855f9f..62787e3 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) -- 1.7.1