summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-05-03 11:23:20 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-05-03 11:23:20 -0700
commitea40a6c52145405785ce3f54e4cfb7f2df75af90 (patch)
treeea64ffecaae8eee4e0ecd270c22b80f4c45c7783 /kernel
parentcebf59e49427f15f2dd8758a4039c37ff886ebce (diff)
parentc6a5b958e655d6d23bdede8103876d5ffe1c56b6 (diff)
Merge "sched/walt: Fix use after free in trace_sched_update_task_ravg()"
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/hmp.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched/hmp.c b/kernel/sched/hmp.c
index ea066ab8376b..d9f0669ff683 100644
--- a/kernel/sched/hmp.c
+++ b/kernel/sched/hmp.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -2881,11 +2881,15 @@ void update_task_ravg(struct task_struct *p, struct rq *rq, int event,
update_task_burst(p, rq, event, runtime);
update_cpu_busy_time(p, rq, event, wallclock, irqtime);
update_task_pred_demand(rq, p, event);
-done:
+
+ if (exiting_task(p))
+ goto done;
+
trace_sched_update_task_ravg(p, rq, event, wallclock, irqtime,
rq->cc.cycles, rq->cc.time,
p->grp ? &rq->grp_time : NULL);
+done:
p->ravg.mark_start = wallclock;
}