[PATCH 00/23] y2038 cleanups
Arnd Bergmann
arnd at arndb.de
Sat Nov 9 08:02:21 AEDT 2019
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.
As there is no rush on any of these patches, I would either
queue them up in linux-next through my y2038 branch, or
Thomas could add them to the tip tree if he wants.
As mentioned in another series, this is part of a larger
effort to fix all the remaining bits and pieces that are
not completed yet from the y2038 conversion, and the full
set can be found at:
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/log/?h=y2038-endgame
Maintainers, please review and provide Acks.
Let me know if you have any opinion on whether we should do
the include last two patches of this series or not.
Arnd
Arnd Bergmann (23):
y2038: remove CONFIG_64BIT_TIME
y2038: add __kernel_old_timespec and __kernel_old_time_t
y2038: vdso: change timeval to __kernel_old_timeval
y2038: vdso: change timespec to __kernel_old_timespec
y2038: vdso: change time_t to __kernel_old_time_t
y2038: vdso: nds32: open-code timespec_add_ns()
y2038: vdso: powerpc: avoid timespec references
y2038: ipc: remove __kernel_time_t reference from headers
y2038: stat: avoid 'time_t' in 'struct stat'
y2038: uapi: change __kernel_time_t to __kernel_old_time_t
y2038: rusage: use __kernel_old_timeval
y2038: syscalls: change remaining timeval to __kernel_old_timeval
y2038: socket: remove timespec reference in timestamping
y2038: make ns_to_compat_timeval use __kernel_old_timeval
y2038: elfcore: Use __kernel_old_timeval for process times
y2038: timerfd: Use timespec64 internally
y2038: time: avoid timespec usage in settimeofday()
y2038: itimer: compat handling to itimer.c
y2038: use compat_{get,set}_itimer on alpha
y2038: move itimer reset into itimer.c
y2038: itimer: change implementation to timespec64
[RFC] y2038: itimer: use ktime_t internally
y2038: allow disabling time32 system calls
arch/Kconfig | 11 +-
arch/alpha/kernel/osf_sys.c | 67 +-----
arch/alpha/kernel/syscalls/syscall.tbl | 4 +-
arch/ia64/kernel/asm-offsets.c | 2 +-
arch/mips/include/uapi/asm/msgbuf.h | 6 +-
arch/mips/include/uapi/asm/sembuf.h | 4 +-
arch/mips/include/uapi/asm/shmbuf.h | 6 +-
arch/mips/include/uapi/asm/stat.h | 16 +-
arch/mips/kernel/binfmt_elfn32.c | 4 +-
arch/mips/kernel/binfmt_elfo32.c | 4 +-
arch/nds32/kernel/vdso/gettimeofday.c | 61 +++--
arch/parisc/include/uapi/asm/msgbuf.h | 6 +-
arch/parisc/include/uapi/asm/sembuf.h | 4 +-
arch/parisc/include/uapi/asm/shmbuf.h | 6 +-
arch/powerpc/include/asm/asm-prototypes.h | 3 +-
arch/powerpc/include/asm/vdso_datapage.h | 6 +-
arch/powerpc/include/uapi/asm/msgbuf.h | 6 +-
arch/powerpc/include/uapi/asm/sembuf.h | 4 +-
arch/powerpc/include/uapi/asm/shmbuf.h | 6 +-
arch/powerpc/include/uapi/asm/stat.h | 2 +-
arch/powerpc/kernel/asm-offsets.c | 18 +-
arch/powerpc/kernel/syscalls.c | 4 +-
arch/powerpc/kernel/time.c | 5 +-
arch/powerpc/kernel/vdso32/gettimeofday.S | 6 +-
arch/powerpc/kernel/vdso64/gettimeofday.S | 8 +-
arch/sparc/include/uapi/asm/msgbuf.h | 6 +-
arch/sparc/include/uapi/asm/sembuf.h | 4 +-
arch/sparc/include/uapi/asm/shmbuf.h | 6 +-
arch/sparc/include/uapi/asm/stat.h | 24 +-
arch/sparc/vdso/vclock_gettime.c | 36 +--
arch/x86/entry/vdso/vclock_gettime.c | 6 +-
arch/x86/entry/vsyscall/vsyscall_64.c | 4 +-
arch/x86/include/uapi/asm/msgbuf.h | 6 +-
arch/x86/include/uapi/asm/sembuf.h | 4 +-
arch/x86/include/uapi/asm/shmbuf.h | 6 +-
arch/x86/um/vdso/um_vdso.c | 12 +-
fs/aio.c | 2 +-
fs/binfmt_elf.c | 12 +-
fs/binfmt_elf_fdpic.c | 12 +-
fs/compat_binfmt_elf.c | 4 +-
fs/select.c | 10 +-
fs/timerfd.c | 14 +-
fs/utimes.c | 8 +-
include/linux/compat.h | 19 +-
include/linux/syscalls.h | 16 +-
include/linux/time.h | 9 +-
include/linux/time32.h | 2 +-
include/linux/types.h | 2 +-
include/trace/events/timer.h | 29 +--
include/uapi/asm-generic/msgbuf.h | 12 +-
include/uapi/asm-generic/posix_types.h | 1 +
include/uapi/asm-generic/sembuf.h | 7 +-
include/uapi/asm-generic/shmbuf.h | 12 +-
include/uapi/linux/cyclades.h | 6 +-
include/uapi/linux/elfcore.h | 8 +-
include/uapi/linux/errqueue.h | 7 +
include/uapi/linux/msg.h | 6 +-
include/uapi/linux/ppp_defs.h | 4 +-
include/uapi/linux/resource.h | 4 +-
include/uapi/linux/sem.h | 4 +-
include/uapi/linux/shm.h | 6 +-
include/uapi/linux/time.h | 6 +-
include/uapi/linux/time_types.h | 5 +
include/uapi/linux/utime.h | 4 +-
ipc/syscall.c | 2 +-
kernel/compat.c | 24 --
kernel/power/power.h | 2 +-
kernel/sys.c | 4 +-
kernel/sys_ni.c | 23 ++
kernel/time/hrtimer.c | 2 +-
kernel/time/itimer.c | 280 ++++++++++++++--------
kernel/time/time.c | 32 ++-
lib/vdso/gettimeofday.c | 4 +-
net/core/scm.c | 6 +-
net/socket.c | 2 +-
security/selinux/hooks.c | 10 +-
76 files changed, 501 insertions(+), 504 deletions(-)
--
2.20.0
Cc: rth at twiddle.net
Cc: tony.luck at intel.com
Cc: paul.burton at mips.com
Cc: green.hu at gmail.com
Cc: deller at gmx.de
Cc: mpe at ellerman.id.au
Cc: davem at davemloft.net
Cc: tglx at linutronix.de
Cc: x86 at kernel.org
Cc: jdike at addtoit.com
Cc: richard at nod.at
Cc: viro at zeniv.linux.org.uk
Cc: bcrl at kvack.org
Cc: john.stultz at linaro.org
Cc: sboyd at kernel.org
Cc: rostedt at goodmis.org
Cc: arnd at arndb.de
Cc: vincenzo.frascino at arm.com
Cc: paul at paul-moore.com
Cc: sds at tycho.nsa.gov
Cc: eparis at parisplace.org
Cc: peterz at infradead.org
Cc: will at kernel.org
Cc: deepa.kernel at gmail.com
Cc: christian at brauner.io
Cc: heiko.carstens at de.ibm.com
Cc: christophe.leroy at c-s.fr
Cc: ebiederm at xmission.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-alpha at vger.kernel.org>
Cc: linux-ia64 at vger.kernel.org>
Cc: linux-mips at vger.kernel.org>
Cc: linux-parisc at vger.kernel.org>
Cc: linuxppc-dev at lists.ozlabs.org>
Cc: sparclinux at vger.kernel.org>
Cc: linux-um at lists.infradead.org>
Cc: linux-fsdevel at vger.kernel.org>
Cc: linux-aio at kvack.org>
Cc: linux-api at vger.kernel.org>
Cc: linux-arch at vger.kernel.org>
Cc: netdev at vger.kernel.org>
Cc: selinux at vger.kernel.org>
More information about the Linuxppc-dev
mailing list