vhost: fix desc access in relay helpers

Descs in desc table should be indexed using the desc idx
instead of the idx of avail ring and used ring.

Fixes: b13ad2decc ("vhost: provide helpers for virtio ring relay")

Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
This commit is contained in:
Tiwei Bie 2019-01-04 12:06:37 +08:00 committed by Ferruh Yigit
parent 8532a0fcd8
commit e218fa09f4

View File

@ -190,10 +190,10 @@ rte_vdpa_relay_vring_avail(int vid, uint16_t qid, void *vring_m)
if (unlikely(!desc_ring))
return -1;
if (unlikely(dlen < vq->desc[idx].len)) {
if (unlikely(dlen < vq->desc[desc_id].len)) {
idesc = alloc_copy_ind_table(dev, vq,
vq->desc[idx].addr,
vq->desc[idx].len);
vq->desc[desc_id].addr,
vq->desc[desc_id].len);
if (unlikely(!idesc))
return -1;
@ -279,10 +279,10 @@ rte_vdpa_relay_vring_used(int vid, uint16_t qid, void *vring_m)
if (unlikely(!desc_ring))
return -1;
if (unlikely(dlen < vq->desc[idx].len)) {
if (unlikely(dlen < vq->desc[desc_id].len)) {
idesc = alloc_copy_ind_table(dev, vq,
vq->desc[idx].addr,
vq->desc[idx].len);
vq->desc[desc_id].addr,
vq->desc[desc_id].len);
if (unlikely(!idesc))
return -1;