Re: [PATCH 1/1] posix clocks: introduce syscall for clock tuning.

From: Richard Cochran
Date: Mon Aug 23 2010 - 04:55:22 EST


On Mon, Aug 23, 2010 at 10:25:35AM +0200, Bert Wesarg wrote:
> On Mon, Aug 23, 2010 at 10:16, Richard Cochran <richardcochran@xxxxxxxxx> wrote:
> > diff --git a/kernel/compat.c b/kernel/compat.c
> > index 5adab05..df1e469 100644
> > --- a/kernel/compat.c
> > +++ b/kernel/compat.c
> > @@ -628,6 +628,26 @@ long compat_sys_clock_gettime(clockid_t which_clock,
> >        return err;
> >  }
> >
> > +long compat_sys_clock_adjtime(clockid_t which_clock, int ppb,
> > +               struct compat_timespec __user *tp)
> > +{
> > +       long err;
> > +       mm_segment_t oldfs;
> > +       struct timespec ts, *ptr = NULL;
>
> Shouldn't ptr be initialized with tp?

It could be, but the logic turns out the same either way. The
semantics of the call is, if 'tp' is NULL, then adjust the frequency
by 'ppb', otherwise adjust clock time by 'tp'.

>
> > +
> > +       if (tp) {
> > +               if (get_compat_timespec(&ts, tp))
> > +                       return -EFAULT;
> > +               ptr = &ts;
> > +       }
> > +       oldfs = get_fs();
> > +       set_fs(KERNEL_DS);
> > +       err = sys_clock_adjtime(which_clock, ppb,
> > +                               (struct timespec __user *) ptr);
> > +       set_fs(oldfs);
> > +       return err;
> > +}
> > +
> >  long compat_sys_clock_getres(clockid_t which_clock,
> >                struct compat_timespec __user *tp)
> >  {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/