Hi,

On 7/26/22 09:55, Maxime Coquelin wrote:


On 7/25/22 22:32, David Marchand wrote:
translate_ring_addresses (via numa_realloc) may change a virtio device and
virtio queue.
The virtqueue object must be refreshed before accessing the lock.

Fixes: 04c27cb673b9 ("vhost: fix unsafe vring addresses modifications")
Cc: sta...@dpdk.org

Signed-off-by: David Marchand <david.march...@redhat.com>
---
  lib/vhost/vhost_user.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
index 4ad28bac45..91d40e32fc 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -2596,6 +2596,7 @@ vhost_user_iotlb_msg(struct virtio_net **pdev,
              if (is_vring_iotlb(dev, vq, imsg)) {
                  rte_spinlock_lock(&vq->access_lock);
                  *pdev = dev = translate_ring_addresses(dev, i);
+                vq = dev->virtqueue[i];
                  rte_spinlock_unlock(&vq->access_lock);
              }
          }

Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>

Thanks,
Maxime

The bug this patch is fixing is being reproduced downstream.
It would be great it gets merged in main branch rapidly so that we can
perform the backport.

Chenbo, are you planning a pull request for vhost/virtio in the next few
days? If not, should the main branch maintainer pick this single patch
directly and let the rest of the series more time for reviews?

Thanks,
Maxime

Reply via email to