Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.26-rc1 /kernel/compat.c

Filename:/kernel/compat.c
Lines Added:11
Lines Deleted:12
Also changed in: (Previous) 2.6.25-git20  2.6.25-git19  2.6.25-git18  2.6.25-git17  2.6.25-git16  2.6.25-git15 
(Following) 2.6.26-rc2  2.6.26-rc3  2.6.26-rc4  2.6.26-rc5  2.6.26-rc6  2.6.26-rc7 

Location
[  2.6.26-rc1
  [  kernel
     o  compat.c

Patch

diff --git a/kernel/compat.c b/kernel/compat.c
index 5f0e201..32c254a 100644
--- a/kernel/compat.c
+++ b/kernel/compat.c
@@ -47,15 +47,14 @@ static long compat_nanosleep_restart(struct restart_block *restart)
    mm_segment_t oldfs;
    long ret;
 
-   rmtp = (struct compat_timespec __user *)(restart->arg1);
-   restart->arg1 = (unsigned long)&rmt;
+   restart->nanosleep.rmtp = (struct timespec __user *) &rmt;
    oldfs = get_fs();
    set_fs(KERNEL_DS);
    ret = hrtimer_nanosleep_restart(restart);
    set_fs(oldfs);
 
    if (ret) {
-      restart->arg1 = (unsigned long)rmtp;
+      rmtp = restart->nanosleep.compat_rmtp;
 
       if (rmtp && put_compat_timespec(&rmt, rmtp))
          return -EFAULT;
@@ -89,7 +88,7 @@ asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp,
          = ¤t_thread_info()->restart_block;
 
       restart->fn = compat_nanosleep_restart;
-      restart->arg1 = (unsigned long)rmtp;
+      restart->nanosleep.compat_rmtp = rmtp;
 
       if (rmtp && put_compat_timespec(&rmt, rmtp))
          return -EFAULT;
@@ -446,7 +445,7 @@ asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid,
    if (retval)
       return retval;
 
-   return sched_setaffinity(pid, new_mask);
+   return sched_setaffinity(pid, &new_mask);
 }
 
 asmlinkage long compat_sys_sched_getaffinity(compat_pid_t pid, unsigned int len,
@@ -607,9 +606,9 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
    long err;
    mm_segment_t oldfs;
    struct timespec tu;
-   struct compat_timespec *rmtp = (struct compat_timespec *)(restart->arg1);
+   struct compat_timespec *rmtp = restart->nanosleep.compat_rmtp;
 
-   restart->arg1 = (unsigned long) &tu;
+   restart->nanosleep.rmtp = (struct timespec __user *) &tu;
    oldfs = get_fs();
    set_fs(KERNEL_DS);
    err = clock_nanosleep_restart(restart);
@@ -621,7 +620,7 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
 
    if (err == -ERESTART_RESTARTBLOCK) {
       restart->fn = compat_clock_nanosleep_restart;
-      restart->arg1 = (unsigned long) rmtp;
+      restart->nanosleep.compat_rmtp = rmtp;
    }
    return err;
 }
@@ -652,7 +651,7 @@ long compat_sys_clock_nanosleep(clockid_t which_clock, int flags,
    if (err == -ERESTART_RESTARTBLOCK) {
       restart = ¤t_thread_info()->restart_block;
       restart->fn = compat_clock_nanosleep_restart;
-      restart->arg1 = (unsigned long) rmtp;
+      restart->nanosleep.compat_rmtp = rmtp;
    }
    return err;
 }
@@ -899,7 +898,7 @@ asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset, compat
 
    current->state = TASK_INTERRUPTIBLE;
    schedule();
-   set_thread_flag(TIF_RESTORE_SIGMASK);
+   set_restore_sigmask();
    return -ERESTARTNOHAND;
 }
 #endif /* __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND */
@@ -956,7 +955,8 @@ asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp)
          __put_user(txc.jitcnt, &utp->jitcnt) ||
          __put_user(txc.calcnt, &utp->calcnt) ||
          __put_user(txc.errcnt, &utp->errcnt) ||
-         __put_user(txc.stbcnt, &utp->stbcnt))
+         __put_user(txc.stbcnt, &utp->stbcnt) ||
+         __put_user(txc.tai, &utp->tai))
       ret = -EFAULT;
 
    return ret;
@@ -1081,4 +1081,3 @@ compat_sys_sysinfo(struct compat_sysinfo __user *info)
 
    return 0;
 }
-


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.