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

From: Stefano Garzarella
Date: Wed Nov 02 2022 - 05:43:40 EST


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