Re: [PATCH v2 3/3] kernel/watch_queue: Remove wqueue->defunct and use pipe for clear check

From: Eric Biggers
Date: Fri Aug 05 2022 - 14:33:30 EST


On Fri, Aug 05, 2022 at 03:05:41PM +0530, Siddh Raman Pant wrote:
> On Fri, 05 Aug 2022 12:54:31 +0530 Eric Biggers wrote:
> > Why is the READ_ONCE() needed? Doesn't wqueue->lock protect wqueue->pipe?
>
> We are changing the pointer while a notification can be potentially waiting to
> be posted to the pipe. So a barrier is needed to prevent compiler magic from
> reloading the value.
>

wqueue->pipe is only read or written while wqueue->lock is held, so that is not
an issue at all.

- Eric