aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/posix-timers.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/posix-timers.c')
-rw-r--r--kernel/posix-timers.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
index ea55c7a1cd75..5870efb3e200 100644
--- a/kernel/posix-timers.c
+++ b/kernel/posix-timers.c
@@ -270,7 +270,7 @@ static void tstojiffie(struct timespec *tp, int res, u64 *jiff)
270 long sec = tp->tv_sec; 270 long sec = tp->tv_sec;
271 long nsec = tp->tv_nsec + res - 1; 271 long nsec = tp->tv_nsec + res - 1;
272 272
273 if (nsec > NSEC_PER_SEC) { 273 if (nsec >= NSEC_PER_SEC) {
274 sec++; 274 sec++;
275 nsec -= NSEC_PER_SEC; 275 nsec -= NSEC_PER_SEC;
276 } 276 }
@@ -1209,13 +1209,9 @@ static int do_posix_clock_monotonic_get(clockid_t clock, struct timespec *tp)
1209 1209
1210 do_posix_clock_monotonic_gettime_parts(tp, &wall_to_mono); 1210 do_posix_clock_monotonic_gettime_parts(tp, &wall_to_mono);
1211 1211
1212 tp->tv_sec += wall_to_mono.tv_sec; 1212 set_normalized_timespec(tp, tp->tv_sec + wall_to_mono.tv_sec,
1213 tp->tv_nsec += wall_to_mono.tv_nsec; 1213 tp->tv_nsec + wall_to_mono.tv_nsec);
1214 1214
1215 if ((tp->tv_nsec - NSEC_PER_SEC) > 0) {
1216 tp->tv_nsec -= NSEC_PER_SEC;
1217 tp->tv_sec++;
1218 }
1219 return 0; 1215 return 0;
1220} 1216}
1221 1217