Re: [PATCH] futex: Fix a faulty comment.

From: André Almeida
Date: Mon Dec 06 2021 - 07:12:21 EST


Hi Jangwoong,

Thanks for your patch! However...

Às 15:14 de 04/12/21, 6812skiii@xxxxxxxxx escreveu:
> From: Jangwoong Kim <6812skiii@xxxxxxxxx>
>
> We return 1, not the index of futex woken up.
>
> Signed-off-by: Jangwoong Kim <6812skiii@xxxxxxxxx>
> ---
> kernel/futex/waitwake.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/futex/waitwake.c b/kernel/futex/waitwake.c
> index 4ce0923f1ce3..d148e5d4956b 100644
> --- a/kernel/futex/waitwake.c
> +++ b/kernel/futex/waitwake.c
> @@ -455,8 +455,8 @@ static int futex_wait_multiple_setup(struct futex_vector *vs, int count, int *wo
>
> /*
> * Even if something went wrong, if we find out that a futex
> - * was woken, we don't return error and return this index to
> - * userspace
> + * was woken, we don't return error and make userspace aware
> + * of this by returning 1.

We return to userspace the value at *woken, so your fix is wrong. Have a
look at futex_wait_multiple():

ret = futex_wait_multiple_setup(vs, count, &hint);
if (ret) {
if (ret > 0) {
/* A futex was woken during setup */
ret = hint;
}
return ret;
}

When we return 1 at futex_wait_multiple_setup(), we end up returning the
hint/woken value to userspace.

Let me know if you have questions.

André