*  @info: if non-null, the signal's siginfo is returned here
   *  @ts: upper bound on process time suspension
   */
 -static int do_sigtimedwait(const sigset_t *which, siginfo_t *info,
 +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;
                size_t, sigsetsize)
  {
        sigset_t these;
-       struct timespec ts;
+       struct timespec64 ts;
 -      siginfo_t info;
 +      kernel_siginfo_t info;
        int ret;
  
        /* XXX: Don't preclude handling different sized sigset_t's.  */
  #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;
 -      siginfo_t info;
 +      kernel_siginfo_t info;
        long ret;
  
        if (sigsetsize != sizeof(sigset_t))