[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.0812210950040.3376@localhost.localdomain>
Date: Sun, 21 Dec 2008 09:53:04 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Oleg Nesterov <oleg@...hat.com>
cc: Eric Sesterhenn <snakebyte@....de>,
LKML <linux-kernel@...r.kernel.org>,
John Stultz <johnstul@...ibm.com>, Ingo Molnar <mingo@...e.hu>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: [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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists