diff options
author | Chris Redpath <chris.redpath@arm.com> | 2016-07-25 15:13:58 +0100 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2016-08-11 14:26:47 -0700 |
commit | 23ed57dbcc14871af54db667d460aba64eaf6efe (patch) | |
tree | 93e94779e6780076c3637f1dba93a0057c78a656 /kernel/sched/walt.c | |
parent | 8935b6b4d230ae7969ccdfaf7baf09d818f88c8b (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.c | 9 |
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; |