summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 53f7b50b7541..c07d844c576e 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2273,6 +2273,14 @@ void sched_exit(struct task_struct *p)
kfree(p->ravg.curr_window_cpu);
kfree(p->ravg.prev_window_cpu);
+ /*
+ * update_task_ravg() can be called for exiting tasks. While the
+ * function itself ensures correct behavior, the corresponding
+ * trace event requires that these pointers be NULL.
+ */
+ p->ravg.curr_window_cpu = NULL;
+ p->ravg.prev_window_cpu = NULL;
+
enqueue_task(rq, p, 0);
clear_ed_task(p, rq);
task_rq_unlock(rq, p, &flags);