[PATCH] ipmi: fix inconsistent spinlock usage
authorHironobu Ishii <[email protected]>
Fri, 11 Nov 2005 14:12:21 +0000 (08:12 -0600)
committerLinus Torvalds <[email protected]>
Fri, 11 Nov 2005 17:23:31 +0000 (09:23 -0800)
Part of a patch was accidentally reverted, this corrects an
inconsistent spinlock use in the IPMI message handler.

Signed-off-by: Hironobu Ishii <[email protected]>
Signed-off-by: Corey Minyard <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/char/ipmi/ipmi_msghandler.c

index c1d06ba449b60455fcffdeb908fca20f4952df8d..d16bd4b5c1174665c5e54e23940e46b5c6e20d12 100644 (file)
@@ -2648,7 +2648,7 @@ void ipmi_smi_msg_received(ipmi_smi_t          intf,
        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);
@@ -2657,9 +2657,9 @@ void ipmi_smi_msg_received(ipmi_smi_t          intf,
        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);
        }