- dev->virtqueue[vring_idx] = vq;
- init_vring_queue(dev, vring_idx);
- rte_spinlock_init(&vq->access_lock);
- vq->avail_wrap_counter = 1;
- vq->used_wrap_counter = 1;
- vq->signalled_used_valid = false;
+ vq = rte_malloc(NULL, sizeof(struct vhost_virtqueue), 0);
+ if (vq == NULL) {
+ VHOST_LOG_CONFIG(ERR,
+ "Failed to allocate memory for vring:%u.\n", i);
+ return -1;
+ }
+
+ dev->virtqueue[i] = vq;
+ init_vring_queue(dev, i);
+ rte_spinlock_init(&vq->access_lock);
+ vq->avail_wrap_counter = 1;
+ vq->used_wrap_counter = 1;
+ vq->signalled_used_valid = false;
+ }