diff options
author | Anna-Maria Behnsen <anna-maria@linutronix.de> | 2023-12-01 12:26:34 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2023-12-20 18:49:39 +0300 |
commit | da65f29dada7f7cbbf0d6375b88a0316f5f7d6f5 (patch) | |
tree | a9c2f6d602e27255e4d683d1583e846b9cb87b3e /drivers/clocksource | |
parent | bb8caad5083f8fbba70faf41f1d3bab7cf09da6d (diff) | |
download | linux-da65f29dada7f7cbbf0d6375b88a0316f5f7d6f5.tar.xz |
timers: Fix nextevt calculation when no timers are pending
When no timer is queued into an empty timer base, the next_expiry will not
be updated. It was originally calculated as
base->clk + NEXT_TIMER_MAX_DELTA
When the timer base stays empty long enough (> NEXT_TIMER_MAX_DELTA), the
next_expiry value of the empty base suggests that there is a timer pending
soon. This might be more a kind of a theoretical problem, but the fix
doesn't hurt.
Use only base->next_expiry value as nextevt when timers are
pending. Otherwise nextevt will be jiffies + NEXT_TIMER_MAX_DELTA. As all
information is in place, update base->next_expiry value of the empty timer
base as well.
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/r/20231201092654.34614-13-anna-maria@linutronix.de
Diffstat (limited to 'drivers/clocksource')
0 files changed, 0 insertions, 0 deletions