Showing error 892

User: Jiri Slaby
Error type: Double Lock
Error type description: Some lock is locked twice unintentionally in a sequence
File location: kernel/sched.c
Line in file: 4463
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Stanse (1.2)
Entered: 2012-02-27 21:22:42 UTC


Source:

4433                class = class->next;
4434        }
4435}
4436
4437/*
4438 * schedule() is the main scheduler function.
4439 */
4440asmlinkage void __sched schedule(void)
4441{
4442        struct task_struct *prev, *next;
4443        unsigned long *switch_count;
4444        struct rq *rq;
4445        int cpu;
4446
4447need_resched:
4448        preempt_disable();
4449        cpu = smp_processor_id();
4450        rq = cpu_rq(cpu);
4451        rcu_qsctr_inc(cpu);
4452        prev = rq->curr;
4453        switch_count = &prev->nivcsw;
4454
4455        release_kernel_lock(prev);
4456need_resched_nonpreemptible:
4457
4458        schedule_debug(prev);
4459
4460        if (sched_feat(HRTICK))
4461                hrtick_clear(rq);
4462
4463        spin_lock_irq(&rq->lock);
4464        update_rq_clock(rq);
4465        clear_tsk_need_resched(prev);
4466
4467        if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
4468                if (unlikely(signal_pending_state(prev->state, prev)))
4469                        prev->state = TASK_RUNNING;
4470                else
4471                        deactivate_task(rq, prev, 1);
4472                switch_count = &prev->nvcsw;
4473        }
Show full sources