Re: [PATCH v2 2/2] vsock: fix possible infinite sleep in vsock_connectible_wait_data()

From: Frederic Dalleau
Date: Wed Nov 02 2022 - 09:31:00 EST


Hi Dexuan, Stefano,

Tested-by: Frédéric Dalleau <frederic.dalleau@xxxxxxxxxx>

Regards,
Frédéric


On Wed, Nov 2, 2022 at 10:42 AM Stefano Garzarella <sgarzare@xxxxxxxxxx> wrote:
>
> On Wed, Nov 02, 2022 at 10:31:37AM +0100, Stefano Garzarella wrote:
> >On Mon, Oct 31, 2022 at 07:17:06PM -0700, Dexuan Cui wrote:
> >>Currently vsock_connectible_has_data() may miss a wakeup operation
> >>between vsock_connectible_has_data() == 0 and the prepare_to_wait().
> >>
> >>Fix the race by adding the process to the wait queue before checking
> >>vsock_connectible_has_data().
> >>
> >>Fixes: b3f7fd54881b ("af_vsock: separate wait data loop")
> >>Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
> >>---
> >>
> >>Changes in v2 (Thanks Stefano!):
> >> Fixed a typo in the commit message.
> >> Removed the unnecessary finish_wait() at the end of the loop.
> >
> >LGTM:
> >
> >Reviewed-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>
> >
>
> And I would add
>
> Reported-by: Frédéric Dalleau <frederic.dalleau@xxxxxxxxxx>
>
> Since Frédéric posted a similar patch some months ago (I lost it because
> netdev and I were not in cc):
> https://lore.kernel.org/virtualization/20220824074251.2336997-2-frederic.dalleau@xxxxxxxxxx/
>
> Thanks,
> Stefano
>