vhost: fix IOVA access for packed ring
authorTiwei Bie <tiwei.bie@intel.com>
Tue, 6 Nov 2018 06:40:21 +0000 (14:40 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 13 Nov 2018 23:35:53 +0000 (00:35 +0100)
We should apply for RO access when receiving packets from the
VM and apply for RW access when sending packets to the VM.

Fixes: a922401f35cc ("vhost: add Rx support for packed ring")
Fixes: ae999ce49dcb ("vhost: add Tx support for packed ring")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/virtio_net.c

index 8ad30c9..5e1a1a7 100644 (file)
@@ -598,7 +598,7 @@ reserve_avail_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
                                                avail_idx, &desc_count,
                                                buf_vec, &vec_idx,
                                                &buf_id, &len,
-                                               VHOST_ACCESS_RO) < 0))
+                                               VHOST_ACCESS_RW) < 0))
                        return -1;
 
                len = RTE_MIN(len, size);
@@ -1503,7 +1503,7 @@ virtio_dev_tx_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
                                                vq->last_avail_idx, &desc_count,
                                                buf_vec, &nr_vec,
                                                &buf_id, &dummy_len,
-                                               VHOST_ACCESS_RW) < 0))
+                                               VHOST_ACCESS_RO) < 0))
                        break;
 
                if (likely(dev->dequeue_zero_copy == 0))