|
@@ -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;
|
|
}
|
|
}
|
|
|
|
|