aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2021-12-19 12:23:18 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2021-12-19 12:23:18 -0800
commite1fe1b10e6aae5fb2df1c065e4fbe655c39e5065 (patch)
treefbffe54f8d3ed178984a295491df3db133b3fd3e /kernel
parentMerge tag 'locking_urgent_for_v5.16_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (diff)
parenttimekeeping: Really make sure wall_to_monotonic isn't positive (diff)
downloadlinux-dev-e1fe1b10e6aae5fb2df1c065e4fbe655c39e5065.tar.xz
linux-dev-e1fe1b10e6aae5fb2df1c065e4fbe655c39e5065.zip
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.c3
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;