Merge tag 'y2038-cleanups-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 1 Dec 2019 22:00:59 +0000 (14:00 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 1 Dec 2019 22:00:59 +0000 (14:00 -0800)
Pull y2038 cleanups from Arnd Bergmann:
 "y2038 syscall implementation cleanups

  This is a series of cleanups for the y2038 work, mostly intended for
  namespace cleaning: the kernel defines the traditional time_t, timeval
  and timespec types that often lead to y2038-unsafe code. Even though
  the unsafe usage is mostly gone from the kernel, having the types and
  associated functions around means that we can still grow new users,
  and that we may be missing conversions to safe types that actually
  matter.

  There are still a number of driver specific patches needed to get the
  last users of these types removed, those have been submitted to the
  respective maintainers"

Link: https://lore.kernel.org/lkml/20191108210236.1296047-1-arnd@arndb.de/
* tag 'y2038-cleanups-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (26 commits)
  y2038: alarm: fix half-second cut-off
  y2038: ipc: fix x32 ABI breakage
  y2038: fix typo in powerpc vdso "LOPART"
  y2038: allow disabling time32 system calls
  y2038: itimer: change implementation to timespec64
  y2038: move itimer reset into itimer.c
  y2038: use compat_{get,set}_itimer on alpha
  y2038: itimer: compat handling to itimer.c
  y2038: time: avoid timespec usage in settimeofday()
  y2038: timerfd: Use timespec64 internally
  y2038: elfcore: Use __kernel_old_timeval for process times
  y2038: make ns_to_compat_timeval use __kernel_old_timeval
  y2038: socket: use __kernel_old_timespec instead of timespec
  y2038: socket: remove timespec reference in timestamping
  y2038: syscalls: change remaining timeval to __kernel_old_timeval
  y2038: rusage: use __kernel_old_timeval
  y2038: uapi: change __kernel_time_t to __kernel_old_time_t
  y2038: stat: avoid 'time_t' in 'struct stat'
  y2038: ipc: remove __kernel_time_t reference from headers
  y2038: vdso: powerpc: avoid timespec references
  ...

13 files changed:
1  2 
arch/Kconfig
arch/powerpc/include/asm/asm-prototypes.h
arch/powerpc/kernel/time.c
arch/x86/entry/vsyscall/vsyscall_64.c
fs/aio.c
include/linux/compat.h
include/linux/skbuff.h
include/linux/types.h
include/trace/events/timer.h
include/uapi/linux/ppp_defs.h
net/ipv4/tcp.c
net/socket.c
security/selinux/hooks.c

diff --cc arch/Kconfig
Simple merge
Simple merge
Simple merge
diff --cc fs/aio.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -142,24 -142,10 +142,24 @@@ struct ppp_comp_stats 
  /*
   * The following structure records the time in seconds since
   * the last NP packet was sent or received.
 + *
 + * Linux implements both 32-bit and 64-bit time_t versions
 + * for compatibility with user space that defines ppp_idle
 + * based on the libc time_t.
   */
  struct ppp_idle {
-     __kernel_time_t xmit_idle;        /* time since last NP packet sent */
-     __kernel_time_t recv_idle;        /* time since last NP packet received */
+     __kernel_old_time_t xmit_idle;    /* time since last NP packet sent */
+     __kernel_old_time_t recv_idle;    /* time since last NP packet received */
  };
  
 +struct ppp_idle32 {
 +    __s32 xmit_idle;          /* time since last NP packet sent */
 +    __s32 recv_idle;          /* time since last NP packet received */
 +};
 +
 +struct ppp_idle64 {
 +    __s64 xmit_idle;          /* time since last NP packet sent */
 +    __s64 recv_idle;          /* time since last NP packet received */
 +};
 +
  #endif /* _UAPI_PPP_DEFS_H_ */
diff --cc net/ipv4/tcp.c
Simple merge
diff --cc net/socket.c
Simple merge
Simple merge