mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
pselect6: 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 pselect 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_pselect6 Compat : compat_sys_pselect6_time64 Older y2038 unsafe syscalls: (Controlled by CONFIG_32BIT_COMPAT_TIME for 32 bit ABIs) Native 32 bit : pselect6_time32 Compat : compat_sys_pselect6 Note that all other versions of select syscalls will not have y2038 safe versions. Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
8bd27a3004
commit
e024707bcc
3 changed files with 90 additions and 14 deletions
|
@ -466,7 +466,10 @@ asmlinkage long sys_sendfile64(int out_fd, int in_fd,
|
|||
|
||||
/* fs/select.c */
|
||||
asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *,
|
||||
fd_set __user *, struct timespec __user *,
|
||||
fd_set __user *, struct __kernel_timespec __user *,
|
||||
void __user *);
|
||||
asmlinkage long sys_pselect6_time32(int, fd_set __user *, fd_set __user *,
|
||||
fd_set __user *, struct old_timespec32 __user *,
|
||||
void __user *);
|
||||
asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int,
|
||||
struct __kernel_timespec __user *, const sigset_t __user *,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue