hrtimer: use nanosleep specific restart_block fields
authorThomas Gleixner <tglx@linutronix.de>
Sun, 10 Feb 2008 08:17:43 +0000 (09:17 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 17 Apr 2008 10:22:30 +0000 (12:22 +0200)
Convert all the nanosleep related users of restart_block to the
new nanosleep specific restart_block fields.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/compat.c
kernel/hrtimer.c

index 5f0e201..9c48abf 100644 (file)
@@ -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,
                        = &current_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;
@@ -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 = &current_thread_info()->restart_block;
                restart->fn = compat_clock_nanosleep_restart;
-               restart->arg1 = (unsigned long) rmtp;
+               restart->nanosleep.compat_rmtp = rmtp;
        }
        return err;
 }
Simple merge