timers: fix itimer/many thread hang, fix

fix bogus rq dereference: v3 removed the locking but also removed the rq
initialization.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Ingo Molnar 2008-09-30 08:28:17 +02:00
parent 7086efe1c1
commit 1508487e7f

View file

@ -4042,10 +4042,12 @@ EXPORT_PER_CPU_SYMBOL(kstat);
*/ */
unsigned long long task_delta_exec(struct task_struct *p) unsigned long long task_delta_exec(struct task_struct *p)
{ {
struct rq *rq;
unsigned long flags; unsigned long flags;
struct rq *rq;
u64 ns = 0; u64 ns = 0;
rq = task_rq_lock(p, &flags);
if (task_current(rq, p)) { if (task_current(rq, p)) {
u64 delta_exec; u64 delta_exec;
@ -4055,6 +4057,8 @@ unsigned long long task_delta_exec(struct task_struct *p)
ns = delta_exec; ns = delta_exec;
} }
task_rq_unlock(rq, &flags);
return ns; return ns;
} }