Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8530e89 authored by Claudio Imbrenda's avatar Claudio Imbrenda Committed by Greg Kroah-Hartman
Browse files

VSOCK: fix loopback on big-endian systems



[ Upstream commit e5ab564c9ebee77794842ca7d7476147b83d6a27 ]

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: b9116823 ("VSOCK: add loopback to virtio_transport")

Signed-off-by: default avatarClaudio Imbrenda <imbrenda@linux.vnet.ibm.com>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7eba6537
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)