Pull timers and timekeeping updates from Thomas Gleixner: - Core infrastucture work for Y2038 to address the COMPAT interfaces: + Add a new Y2038 safe __kernel_timespec and use it in the core code + Introduce config switches which allow to control the various compat mechanisms + Use the new config switch in the posix timer code to control the 32bit compat syscall implementation. - Prevent bogus selection of CPU local clocksources which causes an endless reselection loop - Remove the extra kthread in the clocksource code which has no value and just adds another level of indirection - The usual bunch of trivial updates, cleanups and fixlets all over the place - More SPDX conversions * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits) clocksource/drivers/mxs_timer: Switch to SPDX identifier clocksource/drivers/timer-imx-tpm: Switch to SPDX identifier clocksource/drivers/timer-imx-gpt: Switch to SPDX identifier clocksource/drivers/timer-imx-gpt: Remove outdated file path clocksource/drivers/arc_timer: Add comments about locking while read GFRC clocksource/drivers/mips-gic-timer: Add pr_fmt and reword pr_* messages clocksource/drivers/sprd: Fix Kconfig dependency clocksource: Move inline keyword to the beginning of function declarations timer_list: Remove unused function pointer typedef timers: Adjust a kernel-doc comment tick: Prefer a lower rating device only if it's CPU local device clocksource: Remove kthread time: Change nanosleep to safe __kernel_* types time: Change types to new y2038 safe __kernel_* types time: Fix get_timespec64() for y2038 safe compat interfaces time: Add new y2038 safe __kernel_timespec posix-timers: Make compat syscalls depend on CONFIG_COMPAT_32BIT_TIME time: Introduce CONFIG_COMPAT_32BIT_TIME time: Introduce CONFIG_64BIT_TIME in architectures compat: Enable compat_get/put_timespec64 always ...
Showing the changes to include/uapi/linux (1 of 67 files). Show all
Unified · Split
| @@ -42,6 +42,13 @@ struct itimerval { · 41 unmodified lines | |||
| 42 | struct timeval it_value; /* current value */ | 42 | struct timeval it_value; /* current value */ |
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | #ifndef __kernel_timespec | ||
| 46 | struct __kernel_timespec { | ||
| 47 | __kernel_time64_t tv_sec; /* seconds */ | ||
| 48 | long long tv_nsec; /* nanoseconds */ | ||
| 49 | }; | ||
| 50 | #endif | ||
| 51 | |||
| 45 | /* | 52 | /* |
| 46 | * legacy timeval structure, only embedded in structures that | 53 | * legacy timeval structure, only embedded in structures that |
| 47 | * traditionally used 'timeval' to pass time intervals (not absolute | 54 | * traditionally used 'timeval' to pass time intervals (not absolute |