summaryrefslogtreecommitdiff
path: root/drivers/vhost
diff options
context:
space:
mode:
authorPeng Tao <bergwolf@gmail.com>2016-12-08 20:10:46 +0300
committerDavid S. Miller <davem@davemloft.net>2016-12-09 05:24:30 +0300
commitc4587631c7bad47c045e081d1553cd73a23be59a (patch)
treedca17e05e83359df10a2786707d633314a08b99f /drivers/vhost
parent1e97426d29fec42e559d12cdb069c83962be762e (diff)
downloadlinux-c4587631c7bad47c045e081d1553cd73a23be59a.tar.xz
vhost-vsock: fix orphan connection reset
local_addr.svm_cid is host cid. We should check guest cid instead, which is remote_addr.svm_cid. Otherwise we end up resetting all connections to all guests. Cc: stable@vger.kernel.org [4.8+] Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/vhost')
-rw-r--r--drivers/vhost/vsock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index e3b30ea9ece5..a504e2e003da 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -506,7 +506,7 @@ static void vhost_vsock_reset_orphans(struct sock *sk)
* executing.
*/
- if (!vhost_vsock_get(vsk->local_addr.svm_cid)) {
+ if (!vhost_vsock_get(vsk->remote_addr.svm_cid)) {
sock_set_flag(sk, SOCK_DONE);
vsk->peer_shutdown = SHUTDOWN_MASK;
sk->sk_state = SS_UNCONNECTED;