vhost: fix crash on NUMA
The queue allocation was changed, from allocating one queue-pair at a time to one queue at a time. Most of the changes have been done, but just with one being missed: the size of copying the old queue is still based on queue-pair at numa_realloc(), which leads to overwritten issue. As a result, crash may happen. Fix it by specifying the right copy size. Also, the net queue macros are not used any more. Remove them. Fixes: ab4d7b9f1afc ("vhost: turn queue pair to vring") Cc: stable@dpdk.org Reported-by: Ciara Loftus <ciara.loftus@intel.com> Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Jens Freimann <jfreiman@redhat.com> Tested-by: Ciara Loftus <ciara.loftus@intel.com>
This commit is contained in:
parent
368c6625b6
commit
ebd792b386
@ -242,8 +242,6 @@ numa_realloc(struct virtio_net *dev, int index)
|
||||
struct vhost_virtqueue *old_vq, *vq;
|
||||
int ret;
|
||||
|
||||
enum {VIRTIO_RXQ, VIRTIO_TXQ, VIRTIO_QNUM};
|
||||
|
||||
old_dev = dev;
|
||||
vq = old_vq = dev->virtqueue[index];
|
||||
|
||||
@ -265,7 +263,7 @@ numa_realloc(struct virtio_net *dev, int index)
|
||||
if (!vq)
|
||||
return dev;
|
||||
|
||||
memcpy(vq, old_vq, sizeof(*vq) * VIRTIO_QNUM);
|
||||
memcpy(vq, old_vq, sizeof(*vq));
|
||||
rte_free(old_vq);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user