diff options
| author | Deepa Dinamani <deepa.kernel@gmail.com> | 2018-09-20 00:41:06 -0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2018-12-06 11:23:05 -0500 |
| commit | 8bd27a3004e80d3d0962534c97e5a841262d5093 (patch) | |
| tree | c613241d9e7fcf74ab50b8743d0b6ba8d8f729d6 /include/linux/syscalls.h | |
| parent | 854a6ed56839a40f6b5d02a2962f48841482eec4 (diff) | |
ppoll: use __kernel_timespec
struct timespec is not y2038 safe.
struct __kernel_timespec is the new y2038 safe structure for all
syscalls that are using struct timespec.
Update ppoll interfaces to use struct __kernel_timespec.
sigset_t also has different representations on 32 bit and 64 bit
architectures. Hence, we need to support the following different
syscalls:
New y2038 safe syscalls:
(Controlled by CONFIG_64BIT_TIME for 32 bit ABIs)
Native 64 bit(unchanged) and native 32 bit : sys_ppoll
Compat : compat_sys_ppoll_time64
Older y2038 unsafe syscalls:
(Controlled by CONFIG_32BIT_COMPAT_TIME for 32 bit ABIs)
Native 32 bit : ppoll_time32
Compat : compat_sys_ppoll
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/linux/syscalls.h')
| -rw-r--r-- | include/linux/syscalls.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 2ac3d13a915b..4575ea1f22cd 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -469,7 +469,10 @@ asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *, | |||
| 469 | fd_set __user *, struct timespec __user *, | 469 | fd_set __user *, struct timespec __user *, |
| 470 | void __user *); | 470 | void __user *); |
| 471 | asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int, | 471 | asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int, |
| 472 | struct timespec __user *, const sigset_t __user *, | 472 | struct __kernel_timespec __user *, const sigset_t __user *, |
| 473 | size_t); | ||
| 474 | asmlinkage long sys_ppoll_time32(struct pollfd __user *, unsigned int, | ||
| 475 | struct old_timespec32 __user *, const sigset_t __user *, | ||
| 473 | size_t); | 476 | size_t); |
| 474 | 477 | ||
| 475 | /* fs/signalfd.c */ | 478 | /* fs/signalfd.c */ |
