Re: [PATCH] completion: Document that reinit_completion() must be called after complete_all()

From: Linus Torvalds
Date: Wed Aug 16 2017 - 12:47:45 EST


On Wed, Aug 16, 2017 at 8:27 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> The function complete_all() modifies the completion "done" variable to
> UINT_MAX, and no other caller (wait_for_completion(), etc) will modify
> it back to zero. That means that any call to complete_all() must have a
> reinit_completion() before that completion can be used again.
>
> Document this fact by the complete_all() function.

I think this is misleading.

People reading that comment will just say "why doesn't complete_all()
just reinit the thing then?"

So the comment should probably say that it needs to be reinited after
all the existing completion users have actually woken up, so that it
explains why the reinit isn't just done by complete_all().

Linus