diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2021-12-19 12:23:18 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2021-12-19 12:23:18 -0800 |
commit | e1fe1b10e6aae5fb2df1c065e4fbe655c39e5065 (patch) | |
tree | fbffe54f8d3ed178984a295491df3db133b3fd3e /kernel | |
parent | 909e1d166ca807e52ffba57a1a63cef0cf517338 (diff) | |
parent | 4e8c11b6b3f0b6a283e898344f154641eda94266 (diff) |
Merge tag 'timers_urgent_for_v5.16_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fix from Borislav Petkov:
- Make sure the CLOCK_REALTIME to CLOCK_MONOTONIC offset is never
positive
* tag 'timers_urgent_for_v5.16_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
timekeeping: Really make sure wall_to_monotonic isn't positive
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/time/timekeeping.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index b348749a9fc6..dcdcb85121e4 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1306,8 +1306,7 @@ int do_settimeofday64(const struct timespec64 *ts) timekeeping_forward_now(tk); xt = tk_xtime(tk); - ts_delta.tv_sec = ts->tv_sec - xt.tv_sec; - ts_delta.tv_nsec = ts->tv_nsec - xt.tv_nsec; + ts_delta = timespec64_sub(*ts, xt); if (timespec64_compare(&tk->wall_to_monotonic, &ts_delta) > 0) { ret = -EINVAL; |