Message ID | 1529502711-8028-1-git-send-email-imbrenda@linux.vnet.ibm.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [v1,1/1] VSOCK: fix loopback on big-endian systems | expand |
On Wed, Jun 20, 2018 at 03:51:51PM +0200, Claudio Imbrenda wrote: > The dst_cid and src_cid are 64 bits, therefore 64 bit accessors should be > used, and in fact in virtio_transport_common.c only 64 bit accessors are > used. Using 32 bit accessors for 64 bit values breaks big endian systems. > > This patch fixes a wrong use of le32_to_cpu in virtio_transport_send_pkt. > > Fixes: b9116823189e85ccf384 ("VSOCK: add loopback to virtio_transport") > > Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> > --- > net/vmw_vsock/virtio_transport.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
From: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> Date: Wed, 20 Jun 2018 15:51:51 +0200 > The dst_cid and src_cid are 64 bits, therefore 64 bit accessors should be > used, and in fact in virtio_transport_common.c only 64 bit accessors are > used. Using 32 bit accessors for 64 bit values breaks big endian systems. > > This patch fixes a wrong use of le32_to_cpu in virtio_transport_send_pkt. > > Fixes: b9116823189e85ccf384 ("VSOCK: add loopback to virtio_transport") > > Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> Applied and queued up for -stable, thank you.
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c index 8e03bd3..5d3cce9 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -201,7 +201,7 @@ virtio_transport_send_pkt(struct virtio_vsock_pkt *pkt) return -ENODEV; } - if (le32_to_cpu(pkt->hdr.dst_cid) == vsock->guest_cid) + if (le64_to_cpu(pkt->hdr.dst_cid) == vsock->guest_cid) return virtio_transport_send_pkt_loopback(vsock, pkt); if (pkt->reply)
The dst_cid and src_cid are 64 bits, therefore 64 bit accessors should be used, and in fact in virtio_transport_common.c only 64 bit accessors are used. Using 32 bit accessors for 64 bit values breaks big endian systems. This patch fixes a wrong use of le32_to_cpu in virtio_transport_send_pkt. Fixes: b9116823189e85ccf384 ("VSOCK: add loopback to virtio_transport") Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> --- net/vmw_vsock/virtio_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)