lkml.org 
[lkml]   [2008]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [BUG] Null pointer deref with hrtimer_try_to_cancel()
On Sat, 20 Dec 2008, Oleg Nesterov wrote:
> On 12/20, Thomas Gleixner wrote:
> >
> > +static int no_timer_create(struct k_itimer *new_timer)
> > +{
> > + return -EOPNOTSUPP;
> > +}
> > +
> > /*
> > * Return nonzero if we know a priori this clockid_t value is bogus.
> > */
> > @@ -248,6 +253,7 @@ static __init int init_posix_timers(void)
> > .clock_getres = hrtimer_get_res,
> > .clock_get = posix_get_monotonic_raw,
> > .clock_set = do_posix_clock_nosettime,
> > + .timer_create = no_timer_create,
>
> Agreed, this patch is better than mine (and thanks for your
> explanation about CLOCK_MONOTONIC_RAW).
>
> I am not sure about -EOPNOTSUPP. To clarify, I do not claim this
> is wrong, I just do not know.
>
> But please note that sys_timer_create() does:
>
> if (invalid_clockid(which_clock))
> return -EINVAL;

EINVAL is wrong for timer_create(CLOCK_MONOTONIC_RAW) as clockid is
valid, just the operation of creating a timer is not supported for it.

> And ltp's timer_create04.c expects timer_create(MAX_CLOCKS == 4)
> returns -EINVAL.

That's because timer_create04.c does not know about
CLOCK_MONOTONIC_RAW yet.

Thanks,

tglx


\
 
 \ /
  Last update: 2008-12-21 09:57    [W:0.036 / U:1.700 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site