[PATCH -tip] sched: fix using uninilialzed rq in task_delta_exec()

From: Hiroshi Shimamoto
Date: Mon Sep 29 2008 - 14:23:25 EST


From: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>

compiler warnings;

CC kernel/sched.o
kernel/sched.c: In function 'task_delta_exec':
kernel/sched.c:4055: warning: unused variable 'flags'
kernel/sched.c:4054: warning: 'rq' is used uninitialized in this function

calling task_delta_exec() may cause unexpected pointer access.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@xxxxxxxxxxxxx>
---
kernel/sched.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/kernel/sched.c b/kernel/sched.c
index 30b73fc..b6c0dd8 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4055,6 +4055,7 @@ unsigned long long task_delta_exec(struct task_struct *p)
unsigned long flags;
u64 ns = 0;

+ rq = task_rq_lock(p, &flags);
if (task_current(rq, p)) {
u64 delta_exec;

@@ -4063,6 +4064,7 @@ unsigned long long task_delta_exec(struct task_struct *p)
if ((s64)delta_exec > 0)
ns = delta_exec;
}
+ task_rq_unlock(rq, &flags);

return ns;
}
--
1.5.6

--
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/