lkml.org 
[lkml]   [2007]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] posix-timer: fix deletion race
On 07/24, Jeremy Katz wrote:
>
> On Tue, 24 Jul 2007, Oleg Nesterov wrote:
>
> >Interesting. Could you show the patch? Where does sys_timer_create() set
> >counter == 1?
>
> --- kernel/posix-timers.c.old 2007-07-24 11:21:29.000000000 -0700
> +++ kernel/posix-timers.c 2007-07-20 15:49:51.000000000 -0700
> @@ -409,13 +409,17 @@ static struct k_itimer * alloc_posix_tim
> #define IT_ID_NOT_SET 0
> static void release_posix_timer(struct k_itimer *tmr, int it_id_set)
> {
> + atomic_inc(&tmr->freecount);
> @@ -443,6 +447,7 @@ sys_timer_create(const clockid_t which_c
> new_timer = alloc_posix_timer();
> if (unlikely(!new_timer))
> return -EAGAIN;
> + atomic_set(&new_timer->freecount, 0);
>
> --- include/linux/posix-timers.h.old 2007-07-24 11:32:36.000000000 -0700
> +++ include/linux/posix-timers.h 2007-07-20 15:15:44.000000000 -0700
> @@ -62,6 +62,7 @@ struct k_itimer {
> unsigned long expires;
> } mmtimer;
> } it;
> + atomic_t freecount;
> };
>
> struct k_clock {
>
>
> Examination was done through a kgdb session when it caught the bug.
> freecount always had the expected value, 1 during a delete operation,
> and 0 otherwise.

OK, thanks.

> >>>Could you try the patch below? Perhaps we have some wierd problem with
> >>>->sigq corruption.
> >>
> >>Tried, with apparent effect.
> >
> >You mean, "null pointer dereference" in release_posix_timer() ? Or it was
> >BUG_ON(timr && !timr->sigq) in lock_timer() ?
>
> Sorry. That should have been "without apparent effect".

Sorry. I confused completely.

So. You mean that even with that patch you _still_ see the BUG_ON(!SIGQUEUE_PREALLOC)
in sigqueue_free() ?

Oleg.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-07-24 22:45    [W:0.069 / U:1.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site