Showing error 1607

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: kernel/sched.c
Line in file: 4953
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-29 20:11:37 UTC


Source:

4923        const struct sched_class *prev_class = p->sched_class;
4924
4925        BUG_ON(prio < 0 || prio > MAX_PRIO);
4926
4927        rq = task_rq_lock(p, &flags);
4928        update_rq_clock(rq);
4929
4930        oldprio = p->prio;
4931        on_rq = p->se.on_rq;
4932        running = task_current(rq, p);
4933        if (on_rq)
4934                dequeue_task(rq, p, 0);
4935        if (running)
4936                p->sched_class->put_prev_task(rq, p);
4937
4938        if (rt_prio(prio))
4939                p->sched_class = &rt_sched_class;
4940        else
4941                p->sched_class = &fair_sched_class;
4942
4943        p->prio = prio;
4944
4945        if (running)
4946                p->sched_class->set_curr_task(rq);
4947        if (on_rq) {
4948                enqueue_task(rq, p, 0);
4949
4950                check_class_changed(rq, p, prev_class, oldprio, running);
4951        }
4952        task_rq_unlock(rq, &flags);
4953}
4954
4955#endif
4956
4957void set_user_nice(struct task_struct *p, long nice)
4958{
4959        int old_prio, delta, on_rq;
4960        unsigned long flags;
4961        struct rq *rq;
4962
4963        if (TASK_NICE(p) == nice || nice < -20 || nice > 19)
Show full sources