diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-04-27 15:40:12 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2018-05-19 13:57:31 +0200 |
commit | 4f0fad9a603aee91a374e8411c23953894a77479 (patch) | |
tree | 3a8bd6e90446982588cc533ef31fddc56dd98133 /include/linux/time64.h | |
parent | b563ea676a46f3a297b1e64b6ece25b934aafba5 (diff) | |
download | lwn-4f0fad9a603aee91a374e8411c23953894a77479.tar.gz lwn-4f0fad9a603aee91a374e8411c23953894a77479.zip |
timekeeping: Remove timespec64 hack
At this point, we have converted most of the kernel to use timespec64
consistently in place of timespec, so it seems it's time to make
timespec64 the native structure and define timespec in terms of that
one on 64-bit architectures.
Starting with gcc-5, the compiler can completely optimize away the
timespec_to_timespec64 and timespec64_to_timespec functions on 64-bit
architectures. With older compilers, we introduce a couple of extra
copies of local variables, but those are easily avoided by using
the timespec64 based interfaces consistently, as we do in most of the
important code paths already.
The main upside of removing the hack is that printing the tv_sec
field of a timespec64 structure can now use the %lld format
string on all architectures without a cast to time64_t. Without
this patch, the field is a 'long' type and would have to be printed
using %ld on 64-bit architectures.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: y2038@lists.linaro.org
Cc: John Stultz <john.stultz@linaro.org>
Link: https://lkml.kernel.org/r/20180427134016.2525989-2-arnd@arndb.de
Diffstat (limited to 'include/linux/time64.h')
-rw-r--r-- | include/linux/time64.h | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/include/linux/time64.h b/include/linux/time64.h index 0d96887ba4e0..0a7b2f79cec7 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -16,11 +16,6 @@ typedef __u64 timeu64_t; #include <uapi/linux/time.h> -#if __BITS_PER_LONG == 64 -/* this trick allows us to optimize out timespec64_to_timespec */ -# define timespec64 timespec -#define itimerspec64 itimerspec -#else struct timespec64 { time64_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ @@ -31,8 +26,6 @@ struct itimerspec64 { struct timespec64 it_value; }; -#endif - /* Parameters used to convert the timespec values: */ #define MSEC_PER_SEC 1000L #define USEC_PER_MSEC 1000L |