Showing error 1259

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/char/ipmi/ipmi_msghandler.c
Line in file: 3665
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

3635         */
3636        run_to_completion = intf->run_to_completion;
3637        if (!run_to_completion)
3638                spin_lock_irqsave(&intf->waiting_msgs_lock, flags);
3639        if (!list_empty(&intf->waiting_msgs)) {
3640                list_add_tail(&msg->link, &intf->waiting_msgs);
3641                if (!run_to_completion)
3642                        spin_unlock_irqrestore(&intf->waiting_msgs_lock, flags);
3643                goto out;
3644        }
3645        if (!run_to_completion)
3646                spin_unlock_irqrestore(&intf->waiting_msgs_lock, flags);
3647
3648        rv = handle_new_recv_msg(intf, msg);
3649        if (rv > 0) {
3650                /*
3651                 * Could not handle the message now, just add it to a
3652                 * list to handle later.
3653                 */
3654                run_to_completion = intf->run_to_completion;
3655                if (!run_to_completion)
3656                        spin_lock_irqsave(&intf->waiting_msgs_lock, flags);
3657                list_add_tail(&msg->link, &intf->waiting_msgs);
3658                if (!run_to_completion)
3659                        spin_unlock_irqrestore(&intf->waiting_msgs_lock, flags);
3660        } else if (rv == 0) {
3661                ipmi_free_smi_msg(msg);
3662        }
3663
3664 out:
3665        return;
3666}
3667EXPORT_SYMBOL(ipmi_smi_msg_received);
3668
3669void ipmi_smi_watchdog_pretimeout(ipmi_smi_t intf)
3670{
3671        ipmi_user_t user;
3672
3673        rcu_read_lock();
3674        list_for_each_entry_rcu(user, &intf->users, link) {
3675                if (!user->handler->ipmi_watchdog_pretimeout)
Show full sources