Re: [PATCH RESEND] epoll: ep_autoremove_wake_function should use list_del_init_careful

From: Andrew Morton
Date: Wed May 31 2023 - 18:26:45 EST


On Wed, 31 May 2023 15:15:41 -0700 Benjamin Segall <bsegall@xxxxxxxxxx> wrote:

> >> Can you please provide a more detailed explanation about why
> >> list_del_init_careful() is needed here?
> >
> > Yeah, this needs more explanation... Next time someone looks at this
> > code and there's a *_careful() added they'll want to know why.
>
> So the general reason is the same as with autoremove_wake_function, it
> pairs with the list_entry_careful in ep_poll (which is epoll's modified
> copy of finish_wait).
>
> I think the original actual _problem_ was a -stable issue that was fixed
> instead by doing additional backports, so this may just avoid potential
> extra loops and avoid potential compiler shenanigans from the data race.

The point is that the foo_careful() callsites should be commented, please.