Move source tree closer to the 2.6.32.17 mainline
/drivers/char/ipmi/ipmi_si_intf.c
blob:d2e698096ace182698152e2366d7c2dc2cf91342 -> blob:abae8c99259411c6454261b9d01d02b0f9d3ef92
--- drivers/char/ipmi/ipmi_si_intf.c
+++ drivers/char/ipmi/ipmi_si_intf.c
@@ -310,9 +310,14 @@ static void deliver_recv_msg(struct smi_
{
/* Deliver the message to the upper layer with the lock
released. */
- spin_unlock(&(smi_info->si_lock));
- ipmi_smi_msg_received(smi_info->intf, msg);
- spin_lock(&(smi_info->si_lock));
+
+ if (smi_info->run_to_completion) {
+ ipmi_smi_msg_received(smi_info->intf, msg);
+ } else {
+ spin_unlock(&(smi_info->si_lock));
+ ipmi_smi_msg_received(smi_info->intf, msg);
+ spin_lock(&(smi_info->si_lock));
+ }
}
static void return_hosed_msg(struct smi_info *smi_info, int cCode)