Re: [PATCH 2/4] posix-timers: fix creation race

From: Thomas Gleixner
Date: Mon Aug 13 2007 - 08:50:27 EST


On Sun, 2007-08-12 at 23:44 +0400, Oleg Nesterov wrote:
> > > --- t/kernel/posix-timers.c~2_CREATE 2007-08-12 17:59:17.000000000 +0400
> > > +++ t/kernel/posix-timers.c 2007-08-12 18:11:33.000000000 +0400
> > > @@ -547,13 +547,12 @@ sys_timer_create(const clockid_t which_c
> > > new_timer->it_process = process;
> > > list_add(&new_timer->list,
> > > &process->signal->posix_timers);
> > > - spin_unlock_irqrestore(&process->sighand->siglock, flags);
> > > if (new_timer->it_sigev_notify == (SIGEV_SIGNAL|SIGEV_THREAD_ID))
> > > get_task_struct(process);
> > > } else {
> > > - spin_unlock_irqrestore(&process->sighand->siglock, flags);
> > > process = NULL;
> > > }
> > > + spin_unlock_irqrestore(&process->sighand->siglock, flags);
>
> i'll resend this patch tomorrow. We can't do spin_unlock_irqrestore(&process->...)
> if we set process = NULL above.

Doh, half of my brain seems to be still on vacation.

tglx


-
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/