]> git.baikalelectronics.ru Git - kernel.git/commit
vsock: correct removal of socket from the list
authorSunil Muthuswamy <sunilmut@microsoft.com>
Thu, 13 Jun 2019 03:52:27 +0000 (03:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 15 Jun 2019 02:20:20 +0000 (19:20 -0700)
commitdee01a9904fd01bde06ae9aae94ab223ac88b33e
tree1c8950af37bfb47eb9fd0774151d49d710ab8de7
parente654c79420773b5f9e3c3ac8c599ae561b0ace54
vsock: correct removal of socket from the list

The current vsock code for removal of socket from the list is both
subject to race and inefficient. It takes the lock, checks whether
the socket is in the list, drops the lock and if the socket was on the
list, deletes it from the list. This is subject to race because as soon
as the lock is dropped once it is checked for presence, that condition
cannot be relied upon for any decision. It is also inefficient because
if the socket is present in the list, it takes the lock twice.

Signed-off-by: Sunil Muthuswamy <sunilmut@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/vmw_vsock/af_vsock.c