Subject: [PATCH] This patch decreases the IPMI message transaction time in Interrupt mode --------------------------------------------------------------------------------------------- In function sender(), start_next_msg(smi_info) is when the driver is ready to send the data to BMC, but counts on the timeout to start the transaction.In interrupt mode what I observed is that driver simply wastes time, counting on the timer to trigger the transaction. What I have done here is to cut the wait,and trigger the call to the handler. This patch considerably decreases the IPMI transaction time (cuts off ~9ms for a single ipmitool transaction). Signed-off-by: Srinivas_Gowda --- diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 9397ab4..5d1e0ca 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c @@ -932,8 +932,10 @@ static void sender(void *send_info, spin_unlock_irqrestore(&smi_info->msg_lock, flags); spin_lock_irqsave(&smi_info->si_lock, flags); - if (smi_info->si_state == SI_NORMAL && smi_info->curr_msg == NULL) + if (smi_info->si_state == SI_NORMAL && smi_info->curr_msg == NULL) { start_next_msg(smi_info); + mod_timer(&smi_info->si_timer, jiffies + 1); + } spin_unlock_irqrestore(&smi_info->si_lock, flags); }