linux/arch/arm
Thomas Gleixner 41ea39101d y2038: Add time64 system calls
This series finally gets us to the point of having system calls with
 64-bit time_t on all architectures, after a long time of incremental
 preparation patches.
 
 There was actually one conversion that I missed during the summer,
 i.e. Deepa's timex series, which I now updated based the 5.0-rc1 changes
 and review comments.
 
 The following system calls are now added on all 32-bit architectures
 using the same system call numbers:
 
 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
 
 Each one of these corresponds directly to an existing system call
 that includes a 'struct timespec' argument, or a structure containing
 a timespec or (in case of clock_adjtime) timeval. Not included here
 are new versions of getitimer/setitimer and getrusage/waitid, which
 are planned for the future but only needed to make a consistent API
 rather than for correct operation beyond y2038. These four system
 calls are based on 'timeval', and it has not been finally decided
 what the replacement kernel interface will use instead.
 
 So far, I have done a lot of build testing across most architectures,
 which has found a number of bugs. Runtime testing so far included
 testing LTP on 32-bit ARM with the existing system calls, to ensure
 we do not regress for existing binaries, and a test with a 32-bit
 x86 build of LTP against a modified version of the musl C library
 that has been adapted to the new system call interface [3].
 This library can be used for testing on all architectures supported
 by musl-1.1.21, but it is not how the support is getting integrated
 into the official musl release. Official musl support is planned
 but will require more invasive changes to the library.
 
 Link: https://lore.kernel.org/lkml/20190110162435.309262-1-arnd@arndb.de/T/
 Link: https://lore.kernel.org/lkml/20190118161835.2259170-1-arnd@arndb.de/
 Link: https://git.linaro.org/people/arnd/musl-y2038.git/ [2]
 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJcXf7/AAoJEGCrR//JCVInPSUP/RhsQSCKMGtONB/vVICQhwep
 PybhzBSpHWFxszzTi6BEPN1zS9B069G9mDollRBYZCckyPqL/Bv6sI/vzQZdNk01
 Q6Nw92OnNE1QP8owZ5TjrZhpbtopWdqIXjsbGZlloUemvuJP2JwvKovQUcn5CPTQ
 jbnqU04CVyFFJYVxAnGJ+VSeWNrjW/cm/m+rhLFjUcwW7Y3aodxsPqPP6+K9hY9P
 yIWfcH42WBeEWGm1RSBOZOScQl4SGCPUAhFydl/TqyEQagyegJMIyMOv9wZ5AuTT
 xK644bDVmNsrtJDZDpx+J8hytXCk1LrnKzkHR/uK80iUIraF/8D7PlaPgTmEEjko
 XcrywEkvkXTVU3owCm2/sbV+8fyFKzSPipnNfN1JNxEX71A98kvMRtPjDueQq/GA
 Yh81rr2YLF2sUiArkc2fNpENT7EGhrh1q6gviK3FB8YDgj1kSgPK5wC/X0uolC35
 E7iC2kg4NaNEIjhKP/WKluCaTvjRbvV+0IrlJLlhLTnsqbA57ZKCCteiBrlm7wQN
 4csUtCyxchR9Ac2o/lj+Mf53z68Zv74haIROp18K2dL7ZpVcOPnA3XHeauSAdoyp
 wy2Ek6ilNvlNB+4x+mRntPoOsyuOUGv7JXzB9JvweLWUd9G7tvYeDJQp/0YpDppb
 K4UWcKnhtEom0DgK08vY
 =IZVb
 -----END PGP SIGNATURE-----

Merge tag 'y2038-new-syscalls' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground into timers/2038

Pull y2038 - time64 system calls from Arnd Bergmann:

This series finally gets us to the point of having system calls with 64-bit
time_t on all architectures, after a long time of incremental preparation
patches.

There was actually one conversion that I missed during the summer,
i.e. Deepa's timex series, which I now updated based the 5.0-rc1 changes
and review comments.

The following system calls are now added on all 32-bit architectures using
the same system call numbers:

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

Each one of these corresponds directly to an existing system call that
includes a 'struct timespec' argument, or a structure containing a timespec
or (in case of clock_adjtime) timeval. Not included here are new versions
of getitimer/setitimer and getrusage/waitid, which are planned for the
future but only needed to make a consistent API rather than for correct
operation beyond y2038. These four system calls are based on 'timeval', and
it has not been finally decided what the replacement kernel interface will
use instead.

So far, I have done a lot of build testing across most architectures, which
has found a number of bugs. Runtime testing so far included testing LTP on
32-bit ARM with the existing system calls, to ensure we do not regress for
existing binaries, and a test with a 32-bit x86 build of LTP against a
modified version of the musl C library that has been adapted to the new
system call interface [3].  This library can be used for testing on all
architectures supported by musl-1.1.21, but it is not how the support is
getting integrated into the official musl release. Official musl support is
planned but will require more invasive changes to the library.

Link: https://lore.kernel.org/lkml/20190110162435.309262-1-arnd@arndb.de/T/
Link: https://lore.kernel.org/lkml/20190118161835.2259170-1-arnd@arndb.de/
Link: https://git.linaro.org/people/arnd/musl-y2038.git/ [2]
2019-02-10 21:24:43 +01:00
..
boot mvebu fixes for 5.0 2019-01-12 22:03:59 -08:00
common Included in this update: 2019-01-05 11:23:17 -08:00
configs ARM: SoC: late updates 2019-01-05 11:30:37 -08:00
crypto Kbuild updates for v4.21 2018-12-29 12:03:17 -08:00
firmware
include y2038: Add time64 system calls 2019-02-10 21:24:43 +01:00
kernel y2038: use time32 syscall names on 32-bit 2019-02-07 00:13:28 +01:00
kvm Kconfig updates for v4.21 2018-12-29 13:03:29 -08:00
lib
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 treewide: add intermediate .s files to targets 2018-12-23 10:12:08 +09:00
mach-axxia
mach-bcm ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-berlin
mach-clps711x
mach-cns3xxx ARM: cns3xxx: Use actual size reads for PCIe 2019-01-31 15:07:16 -06:00
mach-davinci ARM: davinci: omapl138-hawk: fix label names in GPIO lookup entries 2019-01-10 13:32:51 +05:30
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx mmc: spi: Convert to use GPIO descriptors 2018-12-17 08:26:24 +01:00
mach-exynos
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-integrator ARM: integrator: impd1: use struct_size() in devm_kzalloc() 2019-01-11 13:33:00 +01:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone
mach-ks8695 ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: select HAVE_ARM_TWD and ARM_GLOBAL_TIMER 2018-12-10 12:43:40 -08:00
mach-mmp ARM: Device-tree updates 2018-12-31 17:36:02 -08:00
mach-moxart
mach-mv78xx0
mach-mvebu
mach-mxs
mach-netx
mach-nomadik
mach-npcm
mach-nspire
mach-omap1 ARM: SoC platform updates 2018-12-31 17:27:54 -08:00
mach-omap2 Included in this update: 2019-01-05 11:23:17 -08:00
mach-orion5x
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa Included in this update: 2019-01-05 11:23:17 -08:00
mach-qcom
mach-rda ARM: Prepare RDA8810PL SoC 2018-12-31 13:09:39 -08:00
mach-realview ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
mach-rockchip
mach-rpc
mach-s3c24xx mmc: s3cmci: Use the slot GPIO descriptor 2018-12-17 08:26:24 +01:00
mach-s3c64xx
mach-s5pv210
mach-sa1100 Included in this update: 2019-01-05 11:23:17 -08:00
mach-shmobile ARM: shmobile: R-Mobile: Move pm-rmobile to drivers/soc/renesas/ 2018-11-30 11:29:11 +01:00
mach-socfpga reset: socfpga: add an early reset driver for SoCFPGA 2019-01-07 16:38:50 +01:00
mach-spear
mach-sti ARM: sti: remove pen_release and boot_lock 2018-12-20 14:32:15 +01:00
mach-stm32
mach-sunxi ARM: sunxi: add Allwinner ARMv5 SoCs 2018-12-03 09:57:59 +01:00
mach-tango
mach-tegra ARM: tegra: avoid section mismatch warning 2018-12-12 13:57:55 -08:00
mach-u300
mach-uniphier
mach-ux500
mach-versatile
mach-vexpress ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm Included in this update: 2019-01-05 11:23:17 -08:00
net
nwfpe
oprofile Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung
plat-versatile ARM: versatile: rename and comment SMP implementation 2018-12-14 14:44:59 +00:00
probes
tools y2038: add 64-bit time_t syscalls to all 32-bit architectures 2019-02-07 00:13:28 +01:00
vdso
vfp Merge branches 'misc', 'sa1100-for-next' and 'spectre' into for-linus 2019-01-02 10:37:05 +00:00
xen
Kconfig ARM: SoC: late updates 2019-01-05 11:30:37 -08:00
Kconfig-nommu
Kconfig.debug i.MX SoC changes for 4.21: 2018-12-12 13:52:48 -08:00
Makefile ARM: SoC: late updates 2019-01-05 11:30:37 -08:00