time: Provide y2038 safe do_settimeofday() replacement
authorpang.xunlei <pang.xunlei@linaro.org>
Tue, 18 Nov 2014 11:15:16 +0000 (19:15 +0800)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 21 Nov 2014 19:59:57 +0000 (11:59 -0800)
commit21f7eca555ad14e7c7b2cb59a6c6252e74ee5c8b
tree1d3beb73efb551aa006118bcf753b1df187ce72c
parent659bc17b80c692e0ccda757e207fc4666d9b3e71
time: Provide y2038 safe do_settimeofday() replacement

The kernel uses 32-bit signed value(time_t) for seconds elapsed
1970-01-01:00:00:00, thus it will overflow at 2038-01-19 03:14:08
on 32-bit systems. This is widely known as the y2038 problem.

As part of addressing "y2038 problem" for in-kernel uses, this patch
adds safe do_settimeofday64() using timespec64.

After this patch, do_settimeofday() is deprecated and all its call
sites will be fixed using do_settimeofday64(), after that it can be
removed.

Signed-off-by: pang.xunlei <pang.xunlei@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
include/linux/timekeeping.h
kernel/time/timekeeping.c