]> git.droids-corp.org - dpdk.git/commitdiff
vhost: fetch ring address after NUMA reallocation
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Fri, 13 Oct 2017 09:30:21 +0000 (11:30 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 13 Oct 2017 20:08:21 +0000 (22:08 +0200)
In case of NUMA reallocation, the virtqueue struct is reallocated
on another socket, meaning that its address changes.

In translate_ring_addresses(), addr pointer was not fetched again
after the reallocation, so it pointed to freed memory.

This patch just fetch again addr pointer after the reallocation.

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Lei Yao <lei.a.yao@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
lib/librte_vhost/vhost_user.c

index 1dfb234ca16b8b20101d8bb1e0ec6ee5c147826f..76c4eeca5183ad5e8962b68d58ffc9ff0b9e6a65 100644 (file)
@@ -420,6 +420,7 @@ translate_ring_addresses(struct virtio_net *dev, int vq_index)
 
        dev = numa_realloc(dev, vq_index);
        vq = dev->virtqueue[vq_index];
+       addr = &vq->ring_addrs;
 
        vq->avail = (struct vring_avail *)(uintptr_t)ring_addr_to_vva(dev,
                        vq, addr->avail_user_addr, sizeof(struct vring_avail));