OSDN Git Service

Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 5 Mar 2019 22:08:26 +0000 (14:08 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 5 Mar 2019 22:08:26 +0000 (14:08 -0800)
Pull year 2038 updates from Thomas Gleixner:
 "Another round of changes to make the kernel ready for 2038. After lots
  of preparatory work this is the first set of syscalls which are 2038
  safe:

    403 clock_gettime64
    404 clock_settime64
    405 clock_adjtime64
    406 clock_getres_time64
    407 clock_nanosleep_time64
    408 timer_gettime64
    409 timer_settime64
    410 timerfd_gettime64
    411 timerfd_settime64
    412 utimensat_time64
    413 pselect6_time64
    414 ppoll_time64
    416 io_pgetevents_time64
    417 recvmmsg_time64
    418 mq_timedsend_time64
    419 mq_timedreceiv_time64
    420 semtimedop_time64
    421 rt_sigtimedwait_time64
    422 futex_time64
    423 sched_rr_get_interval_time64

  The syscall numbers are identical all over the architectures"

* 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
  riscv: Use latest system call ABI
  checksyscalls: fix up mq_timedreceive and stat exceptions
  unicore32: Fix __ARCH_WANT_STAT64 definition
  asm-generic: Make time32 syscall numbers optional
  asm-generic: Drop getrlimit and setrlimit syscalls from default list
  32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option
  compat ABI: use non-compat openat and open_by_handle_at variants
  y2038: add 64-bit time_t syscalls to all 32-bit architectures
  y2038: rename old time and utime syscalls
  y2038: remove struct definition redirects
  y2038: use time32 syscall names on 32-bit
  syscalls: remove obsolete __IGNORE_ macros
  y2038: syscalls: rename y2038 compat syscalls
  x86/x32: use time64 versions of sigtimedwait and recvmmsg
  timex: change syscalls to use struct __kernel_timex
  timex: use __kernel_timex internally
  sparc64: add custom adjtimex/clock_adjtime functions
  time: fix sys_timer_settime prototype
  time: Add struct __kernel_timex
  time: make adjtime compat handling available for 32 bit
  ...

12 files changed:
1  2 
arch/arc/Kconfig
arch/arm/Kconfig
arch/mips/Kconfig
arch/x86/Kconfig
arch/x86/um/Kconfig
fs/aio.c
include/uapi/linux/time_types.h
kernel/futex.c
kernel/sched/core.c
kernel/signal.c
kernel/time/hrtimer.c
net/compat.c

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -16,6 -16,8 +16,7 @@@ config 64BI
  
  config X86_32
        def_bool !64BIT
 -      select HAVE_AOUT
+       select ARCH_32BIT_OFF_T
        select ARCH_WANT_IPC_PARSE_VERSION
        select MODULES_USE_ELF_REL
        select CLONE_BACKWARDS
diff --cc fs/aio.c
Simple merge
index 459070c,0000000..27bfc8f
mode 100644,000000..100644
--- /dev/null
@@@ -1,40 -1,0 +1,36 @@@
- #ifndef __kernel_timespec
 +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 +#ifndef _UAPI_LINUX_TIME_TYPES_H
 +#define _UAPI_LINUX_TIME_TYPES_H
 +
 +#include <linux/types.h>
 +
- #endif
 +struct __kernel_timespec {
 +      __kernel_time64_t       tv_sec;                 /* seconds */
 +      long long               tv_nsec;                /* nanoseconds */
 +};
- #ifndef __kernel_itimerspec
 +
- #endif
 +struct __kernel_itimerspec {
 +      struct __kernel_timespec it_interval;    /* timer period */
 +      struct __kernel_timespec it_value;       /* timer expiration */
 +};
 +
 +/*
 + * legacy timeval structure, only embedded in structures that
 + * traditionally used 'timeval' to pass time intervals (not absolute
 + * times). Do not add new users. If user space fails to compile
 + * here, this is probably because it is not y2038 safe and needs to
 + * be changed to use another interface.
 + */
 +#ifndef __kernel_old_timeval
 +struct __kernel_old_timeval {
 +      __kernel_long_t tv_sec;
 +      __kernel_long_t tv_usec;
 +};
 +#endif
 +
 +struct __kernel_sock_timeval {
 +      __s64 tv_sec;
 +      __s64 tv_usec;
 +};
 +
 +#endif /* _UAPI_LINUX_TIME_TYPES_H */
diff --cc kernel/futex.c
Simple merge
Simple merge
diff --cc kernel/signal.c
Simple merge
Simple merge
diff --cc net/compat.c
Simple merge