[tip:sched/core] sched/deadline: No need to check p if dl_se is valid

From: tip-bot for Juri Lelli
Date: Thu Jan 16 2014 - 08:40:52 EST


Commit-ID: 71362650b555a5b24c732e455484cc7cac1c8588
Gitweb: http://git.kernel.org/tip/71362650b555a5b24c732e455484cc7cac1c8588
Author: Juri Lelli <juri.lelli@xxxxxxxxx>
AuthorDate: Tue, 14 Jan 2014 12:03:51 +0100
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Thu, 16 Jan 2014 09:27:11 +0100

sched/deadline: No need to check p if dl_se is valid

Dan Carpenter reported new 'Smatch' warnings:

> tree: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
> head: 130816ce4d5f69167324f7272e70aa3d641677c6
> commit: 1baca4ce16b8cc7d4f50be1f7914799af30a2861 [17/50] sched/deadline: Add SCHED_DEADLINE SMP-related data structures & logic
>
> kernel/sched/deadline.c:937 pick_next_task_dl() warn: variable dereferenced before check 'p' (see line 934)

BUG_ON() already fires if pick_next_dl_entity() doesn't return a valid
dl_se. No need to check if p is valid afterward.

Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Juri Lelli <juri.lelli@xxxxxxxxx>
Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Fixes: 1baca4ce16b8 ("sched/deadline: Add SCHED_DEADLINE SMP-related data structures & logic")
Link: http://lkml.kernel.org/r/52D54E25.6060100@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
kernel/sched/deadline.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index ee25361..0de2482 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1007,8 +1007,7 @@ struct task_struct *pick_next_task_dl(struct rq *rq)
p->se.exec_start = rq_clock_task(rq);

/* Running task will never be pushed. */
- if (p)
- dequeue_pushable_dl_task(rq, p);
+ dequeue_pushable_dl_task(rq, p);

#ifdef CONFIG_SCHED_HRTICK
if (hrtick_enabled(rq))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/