aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2016-12-05 23:07:15 -0500
committerMichael S. Tsirkin <mst@redhat.com>2016-12-14 23:59:19 -0500
commitf83f12d660d11718d3eed9d979ee03e83aa55544 (patch)
tree50e595e12928065b9b12135cd66af6c71cf728d1
parent819483d806f4324b42a25f8dd760735ae659141c (diff)
vsock/virtio: fix src/dst cid format
These fields are 64 bit, using le32_to_cpu and friends on these will not do the right thing. Fix this up. Cc: stable@vger.kernel.org Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--net/vmw_vsock/virtio_transport_common.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c
index 6fd923eaeba9..849c4ad0411e 100644
--- a/net/vmw_vsock/virtio_transport_common.c
+++ b/net/vmw_vsock/virtio_transport_common.c
@@ -605,9 +605,9 @@ static int virtio_transport_reset_no_sock(struct virtio_vsock_pkt *pkt)
605 return 0; 605 return 0;
606 606
607 pkt = virtio_transport_alloc_pkt(&info, 0, 607 pkt = virtio_transport_alloc_pkt(&info, 0,
608 le32_to_cpu(pkt->hdr.dst_cid), 608 le64_to_cpu(pkt->hdr.dst_cid),
609 le32_to_cpu(pkt->hdr.dst_port), 609 le32_to_cpu(pkt->hdr.dst_port),
610 le32_to_cpu(pkt->hdr.src_cid), 610 le64_to_cpu(pkt->hdr.src_cid),
611 le32_to_cpu(pkt->hdr.src_port)); 611 le32_to_cpu(pkt->hdr.src_port));
612 if (!pkt) 612 if (!pkt)
613 return -ENOMEM; 613 return -ENOMEM;
@@ -822,7 +822,7 @@ virtio_transport_send_response(struct vsock_sock *vsk,
822 struct virtio_vsock_pkt_info info = { 822 struct virtio_vsock_pkt_info info = {
823 .op = VIRTIO_VSOCK_OP_RESPONSE, 823 .op = VIRTIO_VSOCK_OP_RESPONSE,
824 .type = VIRTIO_VSOCK_TYPE_STREAM, 824 .type = VIRTIO_VSOCK_TYPE_STREAM,
825 .remote_cid = le32_to_cpu(pkt->hdr.src_cid), 825 .remote_cid = le64_to_cpu(pkt->hdr.src_cid),
826 .remote_port = le32_to_cpu(pkt->hdr.src_port), 826 .remote_port = le32_to_cpu(pkt->hdr.src_port),
827 .reply = true, 827 .reply = true,
828 }; 828 };
@@ -862,9 +862,9 @@ virtio_transport_recv_listen(struct sock *sk, struct virtio_vsock_pkt *pkt)
862 child->sk_state = SS_CONNECTED; 862 child->sk_state = SS_CONNECTED;
863 863
864 vchild = vsock_sk(child); 864 vchild = vsock_sk(child);
865 vsock_addr_init(&vchild->local_addr, le32_to_cpu(pkt->hdr.dst_cid), 865 vsock_addr_init(&vchild->local_addr, le64_to_cpu(pkt->hdr.dst_cid),
866 le32_to_cpu(pkt->hdr.dst_port)); 866 le32_to_cpu(pkt->hdr.dst_port));
867 vsock_addr_init(&vchild->remote_addr, le32_to_cpu(pkt->hdr.src_cid), 867 vsock_addr_init(&vchild->remote_addr, le64_to_cpu(pkt->hdr.src_cid),
868 le32_to_cpu(pkt->hdr.src_port)); 868 le32_to_cpu(pkt->hdr.src_port));
869 869
870 vsock_insert_connected(vchild); 870 vsock_insert_connected(vchild);
@@ -903,9 +903,9 @@ void virtio_transport_recv_pkt(struct virtio_vsock_pkt *pkt)
903 struct sock *sk; 903 struct sock *sk;
904 bool space_available; 904 bool space_available;
905 905
906 vsock_addr_init(&src, le32_to_cpu(pkt->hdr.src_cid), 906 vsock_addr_init(&src, le64_to_cpu(pkt->hdr.src_cid),
907 le32_to_cpu(pkt->hdr.src_port)); 907 le32_to_cpu(pkt->hdr.src_port));
908 vsock_addr_init(&dst, le32_to_cpu(pkt->hdr.dst_cid), 908 vsock_addr_init(&dst, le64_to_cpu(pkt->hdr.dst_cid),
909 le32_to_cpu(pkt->hdr.dst_port)); 909 le32_to_cpu(pkt->hdr.dst_port));
910 910
911 trace_virtio_transport_recv_pkt(src.svm_cid, src.svm_port, 911 trace_virtio_transport_recv_pkt(src.svm_cid, src.svm_port,