summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2019-11-25 21:25:46 +0100
committerArnd Bergmann <arnd@arndb.de>2019-11-25 21:52:35 +0100
commitb111df8447acdeb4b9220f99d5d4b28f83eb56ad (patch)
tree4aa99f9b867106165591f5b748d14eccf782b02a
parentaf3784689e2b2741918e69f1ce5f0ecb7933b300 (diff)
downloadlinux-b111df8447acdeb4b9220f99d5d4b28f83eb56ad.tar.bz2
y2038: alarm: fix half-second cut-off
Changing alarm_itimer accidentally broke the logic for arithmetic rounding of half seconds in the return code. Change it to a constant based on NSEC_PER_SEC, as suggested by Ben Hutchings. Fixes: bd40a175769d ("y2038: itimer: change implementation to timespec64") Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--kernel/time/itimer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/time/itimer.c b/kernel/time/itimer.c
index 5872db9bd5f7..9e59c9ea92aa 100644
--- a/kernel/time/itimer.c
+++ b/kernel/time/itimer.c
@@ -297,7 +297,7 @@ static unsigned int alarm_setitimer(unsigned int seconds)
* better return too much than too little anyway
*/
if ((!it_old.it_value.tv_sec && it_old.it_value.tv_nsec) ||
- it_old.it_value.tv_nsec >= 500000)
+ it_old.it_value.tv_nsec >= (NSEC_PER_SEC / 2))
it_old.it_value.tv_sec++;
return it_old.it_value.tv_sec;