#include "trace.h"
#define REALIZE_CONNECTION_RETRIES 3
+#define VHOST_NVQS 2
/* Features required from VirtIO */
static const int feature_bits[] = {
{
virtio_delete_queue(gpio->command_vq);
virtio_delete_queue(gpio->interrupt_vq);
- g_free(gpio->vhost_dev.vqs);
- gpio->vhost_dev.vqs = NULL;
+ g_free(gpio->vhost_vqs);
virtio_cleanup(vdev);
vhost_user_cleanup(&gpio->vhost_user);
}
vhost_dev_set_config_notifier(vhost_dev, &gpio_ops);
gpio->vhost_user.supports_config = true;
+ gpio->vhost_dev.nvqs = VHOST_NVQS;
+ gpio->vhost_dev.vqs = gpio->vhost_vqs;
+
ret = vhost_dev_init(vhost_dev, &gpio->vhost_user,
VHOST_BACKEND_TYPE_USER, 0, errp);
if (ret < 0) {
virtio_init(vdev, VIRTIO_ID_GPIO, sizeof(gpio->config));
- gpio->vhost_dev.nvqs = 2;
gpio->command_vq = virtio_add_queue(vdev, 256, vu_gpio_handle_output);
gpio->interrupt_vq = virtio_add_queue(vdev, 256, vu_gpio_handle_output);
- gpio->vhost_dev.vqs = g_new0(struct vhost_virtqueue, gpio->vhost_dev.nvqs);
+ gpio->vhost_vqs = g_new0(struct vhost_virtqueue, VHOST_NVQS);
gpio->connected = false;