summaryrefslogtreecommitdiff
path: root/kernel/sched/walt.c
diff options
context:
space:
mode:
authorChris Redpath <chris.redpath@arm.com>2016-07-25 15:13:58 +0100
committerAmit Pundir <amit.pundir@linaro.org>2016-09-14 15:02:22 +0530
commit7bba794daaa85dce327e52b201439bb2c148b6c9 (patch)
tree09a4fac049a9b3438d8221ab8338e300429a55c9 /kernel/sched/walt.c
parent923b7aa7f0e6e83a26be3d54db12060dc7651c09 (diff)
arch_timer: add error handling when the MPM global timer is cleared
Bug: 29000863 Signed-off-by: albert.zl_huang <albert.zl_huang@htc.com> Change-Id: I2b5a28b0a9edb31bdaa1ca2310397dd2f36f6c23 Updated to use arch_timer_read_counter() as arch_counter_get_cntvct doesn't exist in this kernel. Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Diffstat (limited to 'kernel/sched/walt.c')
-rw-r--r--kernel/sched/walt.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/sched/walt.c b/kernel/sched/walt.c
index b9ae8d5c4393..d9d09914ce30 100644
--- a/kernel/sched/walt.c
+++ b/kernel/sched/walt.c
@@ -185,7 +185,14 @@ update_window_start(struct rq *rq, u64 wallclock)
int nr_windows;
delta = wallclock - rq->window_start;
- BUG_ON(delta < 0);
+ /* If the MPM global timer is cleared, set delta as 0 to avoid kernel BUG happening */
+ if (delta < 0) {
+ if (arch_timer_read_counter() == 0)
+ delta = 0;
+ else
+ BUG_ON(1);
+ }
+
if (delta < walt_ravg_window)
return;