Showing error 1160

User: Jiri Slaby
Error type: Double Unlock
Error type description: Some lock is unlocked twice unintentionally in a sequence
File location: kernel/sched.c
Line in file: 3919
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-30 10:52:00 UTC


Source:

3889                interval = sd->balance_interval;
3890                if (idle != CPU_IDLE)
3891                        interval *= sd->busy_factor;
3892
3893                /* scale ms to jiffies */
3894                interval = msecs_to_jiffies(interval);
3895                if (unlikely(!interval))
3896                        interval = 1;
3897                if (interval > HZ*NR_CPUS/10)
3898                        interval = HZ*NR_CPUS/10;
3899
3900                need_serialize = sd->flags & SD_SERIALIZE;
3901
3902                if (need_serialize) {
3903                        if (!spin_trylock(&balancing))
3904                                goto out;
3905                }
3906
3907                if (time_after_eq(jiffies, sd->last_balance + interval)) {
3908                        if (load_balance(cpu, rq, sd, idle, &balance, &tmp)) {
3909                                /*
3910                                 * We've pulled tasks over so either we're no
3911                                 * longer idle, or one of our SMT siblings is
3912                                 * not idle.
3913                                 */
3914                                idle = CPU_NOT_IDLE;
3915                        }
3916                        sd->last_balance = jiffies;
3917                }
3918                if (need_serialize)
3919                        spin_unlock(&balancing);
3920out:
3921                if (time_after(next_balance, sd->last_balance + interval)) {
3922                        next_balance = sd->last_balance + interval;
3923                        update_next_balance = 1;
3924                }
3925
3926                /*
3927                 * Stop the load balance at this level. There is another
3928                 * CPU in our sched group which is doing load balancing more
3929                 * actively.
Show full sources