Messages in this thread Patch in this message | | | Date | Fri, 11 Nov 2005 08:12:21 -0600 | From | Corey Minyard <> | Subject | [PATCH] ipmi: fix inconsistent spinlock usage |
| |
Linus,
An obvious bug. Thanks, Hironobu.
Part of a patch was accidentally reverted, this corrects an inconsistent spinlock use in the IPMI message handler.
Signed-off-by: Hironobu Ishii <hishii@soft.fujitsu.com> Signed-off-by: Corey Minyard <minyard@acm.org>
Index: linux-2.6.14-rc4/drivers/char/ipmi/ipmi_msghandler.c =================================================================== --- linux-2.6.14-rc4.orig/drivers/char/ipmi/ipmi_msghandler.c +++ linux-2.6.14-rc4/drivers/char/ipmi/ipmi_msghandler.c @@ -2664,7 +2664,7 @@ void ipmi_smi_msg_received(ipmi_smi_t spin_lock_irqsave(&intf->waiting_msgs_lock, flags); if (!list_empty(&intf->waiting_msgs)) { list_add_tail(&msg->link, &intf->waiting_msgs); - spin_unlock(&intf->waiting_msgs_lock); + spin_unlock_irqrestore(&intf->waiting_msgs_lock, flags); goto out; } spin_unlock_irqrestore(&intf->waiting_msgs_lock, flags); @@ -2673,9 +2673,9 @@ void ipmi_smi_msg_received(ipmi_smi_t if (rv > 0) { /* Could not handle the message now, just add it to a list to handle later. */ - spin_lock(&intf->waiting_msgs_lock); + spin_lock_irqsave(&intf->waiting_msgs_lock, flags); list_add_tail(&msg->link, &intf->waiting_msgs); - spin_unlock(&intf->waiting_msgs_lock); + spin_unlock_irqrestore(&intf->waiting_msgs_lock, flags); } else if (rv == 0) { ipmi_free_smi_msg(msg); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |