]> git.baikalelectronics.ru Git - kernel.git/commit
vsock: fix possible infinite sleep in vsock_connectible_wait_data()
authorDexuan Cui <decui@microsoft.com>
Tue, 1 Nov 2022 02:17:06 +0000 (19:17 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 3 Nov 2022 09:49:29 +0000 (10:49 +0100)
commit9844ade9a63b0bc46758bc31799c1fc012274d45
tree39f15fff8291acfde6a706a7b9206aeece8e4110
parent2241b891e3efbf09d76247c7a49b96e61f91ec25
vsock: fix possible infinite sleep in vsock_connectible_wait_data()

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: af180909a41f ("af_vsock: separate wait data loop")
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reported-by: Frédéric Dalleau <frederic.dalleau@docker.com>
Tested-by: Frédéric Dalleau <frederic.dalleau@docker.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/vmw_vsock/af_vsock.c