On Mon, Aug 01, 2016 at 07:18:21PM +0200, [email protected] wrote: Besides the other locking issue that was already mentioned:
> diff --git a/net/vmw_vsock/virtio_transport_common.c
> b/net/vmw_vsock/virtio_transport_common.c
> index a53b3a1..3c38d43 100644
> --- a/net/vmw_vsock/virtio_transport_common.c
> +++ b/net/vmw_vsock/virtio_transport_common.c
> @@ -773,13 +773,23 @@ virtio_transport_recv_connected(struct sock *sk,
> pkt->len = le32_to_cpu(pkt->hdr.len);
> pkt->off = 0;
>
> - spin_lock_bh(&vvs->rx_lock);
> - virtio_transport_inc_rx_pkt(vvs, pkt);
> - list_add_tail(&pkt->list, &vvs->rx_queue);
> - spin_unlock_bh(&vvs->rx_lock);
> + if (vvs->rx_bytes + pkt->len <= vvs->buf_size) {
vvs->rx_bytes must be accessed under vvs->rx_lock.
signature.asc
Description: PGP signature
