summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-10-25 18:31:05 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-25 18:31:05 -0700
commit4fc7d493eba7d7cbfda21dd790a7a95828872592 (patch)
treec62e5c686c70f835c555a24509e24fef23582f4d
parent9f8e4e930a876f35026227b7849f6da27bde8703 (diff)
parent5c647926d044993f9ded013d4531a373e6fcbc1e (diff)
Merge "sched: Set curr/prev_window_cpu pointers to NULL in sched_exit()"
-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);