Merge tag 'trace-v4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux-2.6-microblaze.git] / kernel / signal.c
index dbd2e4d..1756524 100644 (file)
@@ -3165,7 +3165,7 @@ int copy_siginfo_from_user32(struct kernel_siginfo *to,
  *  @ts: upper bound on process time suspension
  */
 static int do_sigtimedwait(const sigset_t *which, kernel_siginfo_t *info,
-                   const struct timespec *ts)
+                   const struct timespec64 *ts)
 {
        ktime_t *to = NULL, timeout = KTIME_MAX;
        struct task_struct *tsk = current;
@@ -3173,9 +3173,9 @@ static int do_sigtimedwait(const sigset_t *which, kernel_siginfo_t *info,
        int sig, ret = 0;
 
        if (ts) {
-               if (!timespec_valid(ts))
+               if (!timespec64_valid(ts))
                        return -EINVAL;
-               timeout = timespec_to_ktime(*ts);
+               timeout = timespec64_to_ktime(*ts);
                to = &timeout;
        }
 
@@ -3223,11 +3223,12 @@ static int do_sigtimedwait(const sigset_t *which, kernel_siginfo_t *info,
  *  @sigsetsize: size of sigset_t type
  */
 SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
-               siginfo_t __user *, uinfo, const struct timespec __user *, uts,
+               siginfo_t __user *, uinfo,
+               const struct __kernel_timespec __user *, uts,
                size_t, sigsetsize)
 {
        sigset_t these;
-       struct timespec ts;
+       struct timespec64 ts;
        kernel_siginfo_t info;
        int ret;
 
@@ -3239,7 +3240,7 @@ SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
                return -EFAULT;
 
        if (uts) {
-               if (copy_from_user(&ts, uts, sizeof(ts)))
+               if (get_timespec64(&ts, uts))
                        return -EFAULT;
        }
 
@@ -3256,10 +3257,10 @@ SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
 #ifdef CONFIG_COMPAT
 COMPAT_SYSCALL_DEFINE4(rt_sigtimedwait, compat_sigset_t __user *, uthese,
                struct compat_siginfo __user *, uinfo,
-               struct compat_timespec __user *, uts, compat_size_t, sigsetsize)
+               struct old_timespec32 __user *, uts, compat_size_t, sigsetsize)
 {
        sigset_t s;
-       struct timespec t;
+       struct timespec64 t;
        kernel_siginfo_t info;
        long ret;
 
@@ -3270,7 +3271,7 @@ COMPAT_SYSCALL_DEFINE4(rt_sigtimedwait, compat_sigset_t __user *, uthese,
                return -EFAULT;
 
        if (uts) {
-               if (compat_get_timespec(&t, uts))
+               if (get_old_timespec32(&t, uts))
                        return -EFAULT;
        }