diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-11-12 15:46:55 +1100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-11-12 16:41:25 +1100 |
commit | b54d1a8cfc24b06a7649cc5e33aa704662716a28 (patch) | |
tree | aca79bd1ebb2297a654a12c2bb83564f15cf86e4 /core/timer.c | |
parent | 0859f799583daa5fac57ab3f9a1175aae4de3252 (diff) | |
download | skiboot-b54d1a8cfc24b06a7649cc5e33aa704662716a28.zip skiboot-b54d1a8cfc24b06a7649cc5e33aa704662716a28.tar.gz skiboot-b54d1a8cfc24b06a7649cc5e33aa704662716a28.tar.bz2 |
timer: Only check "poll" timers on actual poll, not any interrupt
Due to the lack of SLW timed interrupt support, we take the opportunity
to check out timers on any incoming interrupt. However we really don't
want to do that for the background pollers.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'core/timer.c')
-rw-r--r-- | core/timer.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/core/timer.c b/core/timer.c index a4fa8b8..40526ee 100644 --- a/core/timer.c +++ b/core/timer.c @@ -198,7 +198,7 @@ static void __check_timers(uint64_t now) } } -void check_timers(void) +void check_timers(bool from_interrupt) { struct timer *t; uint64_t now = mftb(); @@ -215,7 +215,8 @@ void check_timers(void) /* Take lock and try again */ lock(&timer_lock); - __check_poll_timers(); + if (!from_interrupt) + __check_poll_timers(); __check_timers(now); unlock(&timer_lock); } |