Loading tools/virtio/virtio_test.c +14 −7 Original line number Diff line number Diff line Loading @@ -94,6 +94,19 @@ void vhost_vq_setup(struct vdev_info *dev, struct vq_info *info) assert(r >= 0); } static void vq_reset(struct vq_info *info, int num, struct virtio_device *vdev) { if (info->vq) vring_del_virtqueue(info->vq); memset(info->ring, 0, vring_size(num, 4096)); vring_init(&info->vring, num, info->ring, 4096); info->vq = __vring_new_virtqueue(info->idx, info->vring, vdev, true, false, vq_notify, vq_callback, "test"); assert(info->vq); info->vq->priv = info; } static void vq_info_add(struct vdev_info *dev, int num) { struct vq_info *info = &dev->vqs[dev->nvqs]; Loading @@ -103,13 +116,7 @@ static void vq_info_add(struct vdev_info *dev, int num) info->call = eventfd(0, EFD_NONBLOCK); r = posix_memalign(&info->ring, 4096, vring_size(num, 4096)); assert(r >= 0); memset(info->ring, 0, vring_size(num, 4096)); vring_init(&info->vring, num, info->ring, 4096); info->vq = __vring_new_virtqueue(info->idx, info->vring, &dev->vdev, true, false, vq_notify, vq_callback, "test"); assert(info->vq); info->vq->priv = info; vq_reset(info, num, &dev->vdev); vhost_vq_setup(dev, info); dev->fds[info->idx].fd = info->call; dev->fds[info->idx].events = POLLIN; Loading Loading
tools/virtio/virtio_test.c +14 −7 Original line number Diff line number Diff line Loading @@ -94,6 +94,19 @@ void vhost_vq_setup(struct vdev_info *dev, struct vq_info *info) assert(r >= 0); } static void vq_reset(struct vq_info *info, int num, struct virtio_device *vdev) { if (info->vq) vring_del_virtqueue(info->vq); memset(info->ring, 0, vring_size(num, 4096)); vring_init(&info->vring, num, info->ring, 4096); info->vq = __vring_new_virtqueue(info->idx, info->vring, vdev, true, false, vq_notify, vq_callback, "test"); assert(info->vq); info->vq->priv = info; } static void vq_info_add(struct vdev_info *dev, int num) { struct vq_info *info = &dev->vqs[dev->nvqs]; Loading @@ -103,13 +116,7 @@ static void vq_info_add(struct vdev_info *dev, int num) info->call = eventfd(0, EFD_NONBLOCK); r = posix_memalign(&info->ring, 4096, vring_size(num, 4096)); assert(r >= 0); memset(info->ring, 0, vring_size(num, 4096)); vring_init(&info->vring, num, info->ring, 4096); info->vq = __vring_new_virtqueue(info->idx, info->vring, &dev->vdev, true, false, vq_notify, vq_callback, "test"); assert(info->vq); info->vq->priv = info; vq_reset(info, num, &dev->vdev); vhost_vq_setup(dev, info); dev->fds[info->idx].fd = info->call; dev->fds[info->idx].events = POLLIN; Loading