Re: [PATCH] timerfd/eventfd context lock doesn't protect againstpoll_wait

From: Andrew Morton
Date: Fri May 18 2007 - 02:40:07 EST


On Thu, 17 May 2007 23:20:05 -0700 (PDT) Davide Libenzi <davidel@xxxxxxxxxxxxxxx> wrote:

> On Fri, 18 May 2007, Davi Arnaut wrote:
>
> > Hi,
> >
> > poll_wait() callback may modify the waitqueue without holding the
> > context private lock.
>
> Thx Davi, patch is correct. Nice catch. But at this point instead of
> ending up getting two locks, we may look into using Andrew suggestion of
> reusing the waitqueue lock. Is it universally considered a "legal"
> operation?
>

I think it's a reasonable thing to do in core kernel code. It'd be more
worrisome if it was done way down in some rarely-visited device driver.

btw, the code at present doesn't explicitly take care of WQ_FLAG_EXCLUSIVE.
I guess as you want wake-all behaviour that's OK, but it might be worth a
mention somewhrre.

hm, fs/signalfd.c is "Copyright (C) 2003 Linus Torvalds". He was before
his time, that lad.

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