lkml.org 
[lkml]   [2011]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [patch 08/28] posix-timers: Cleanup restart_block usage
From
Date
On Tue, 2011-02-01 at 13:51 +0000, Thomas Gleixner wrote:
> plain text document attachment
> (posix-timers-cleanup-restart-block.patch)
> posix timers still use the legacy arg0-arg3 members of
> restart_block. Use restart_block.nanosleep instead
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Richard Cochran <richard.cochran@omicron.at>
[snip]
> long posix_cpu_nsleep_restart(struct restart_block *restart_block)
> {
> - clockid_t which_clock = restart_block->arg0;
> - struct timespec __user *rmtp;
> + clockid_t which_clock = restart_block->nanosleep.index;
> struct timespec t;
> struct itimerspec it;
> int error;
>
> - rmtp = (struct timespec __user *) restart_block->arg1;
> - t.tv_sec = restart_block->arg2;
> - t.tv_nsec = restart_block->arg3;
> + t = ns_to_timespec(restart_block->nanosleep.expires);
>
> - restart_block->fn = do_no_restart_syscall;
> error = do_cpu_nanosleep(which_clock, TIMER_ABSTIME, &t, &it);
>
> if (error == -ERESTART_RESTARTBLOCK) {
> + struct timespec __user *rmtp = restart_block->nanosleep.rmtp;
> /*
> - * Report back to the user the time still remaining.
> - */
> - if (rmtp != NULL && copy_to_user(rmtp, &it.it_value, sizeof *rmtp))
> + * Report back to the user the time still remaining.
> + */
> + if (rmtp && copy_to_user(rmtp, &it.it_value, sizeof *rmtp))
> return -EFAULT;
>
> - restart_block->fn = posix_cpu_nsleep_restart;
> - restart_block->arg0 = which_clock;
> - restart_block->arg1 = (unsigned long) rmtp;
> - restart_block->arg2 = t.tv_sec;
> - restart_block->arg3 = t.tv_nsec;
> + restart_block->nanosleep.expires = timespec_to_ns(&t);

The conversion back and forth from nanoseconds to timespec seems a
little extraneous, but short of reworking all of the do_nanosleep calls
to take a ktime I don't see a clean solution (since hrtimer also uses
the restart_block).

Acked-by: John Stultz <johnstul@us.ibm.com>

thanks
-john



\
 
 \ /
  Last update: 2011-02-01 22:13    [W:0.286 / U:4.792 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site