diff options
author | Peng Tao <bergwolf@gmail.com> | 2016-12-09 01:10:46 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-08 21:24:30 -0500 |
commit | c4587631c7bad47c045e081d1553cd73a23be59a (patch) | |
tree | dca17e05e83359df10a2786707d633314a08b99f /drivers/vhost/vsock.c | |
parent | 1e97426d29fec42e559d12cdb069c83962be762e (diff) | |
download | linux-stable-c4587631c7bad47c045e081d1553cd73a23be59a.tar.gz linux-stable-c4587631c7bad47c045e081d1553cd73a23be59a.tar.bz2 linux-stable-c4587631c7bad47c045e081d1553cd73a23be59a.zip |
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/vsock.c')
-rw-r--r-- | drivers/vhost/vsock.c | 2 |
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; |