Commit 3cb775b9 authored by Dariusz Stojaczyk's avatar Dariusz Stojaczyk Committed by Jim Harris
Browse files

virtio: don't silence vhost-user errors



All errors were being silenced in an upper virtio layer.
This patch makes them properly propagate further.

Change-Id: I289c810ff0f670c4ba1fbcf0804089639fa561a8
Signed-off-by: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/405918


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarPawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 91bdec96
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -59,9 +59,7 @@ virtio_user_create_queue(struct virtio_dev *vdev, uint32_t queue_sel)

	file.index = queue_sel;
	file.fd = dev->callfds[queue_sel];
	dev->ops->send_request(dev, VHOST_USER_SET_VRING_CALL, &file);

	return 0;
	return dev->ops->send_request(dev, VHOST_USER_SET_VRING_CALL, &file);
}

static int
@@ -79,16 +77,26 @@ virtio_user_kick_queue(struct virtio_dev *vdev, uint32_t queue_sel)
		.log_guest_addr = 0,
		.flags = 0, /* disable log */
	};
	int rc;

	state.index = queue_sel;
	state.num = vring->num;
	dev->ops->send_request(dev, VHOST_USER_SET_VRING_NUM, &state);
	rc = dev->ops->send_request(dev, VHOST_USER_SET_VRING_NUM, &state);
	if (rc < 0) {
		return rc;
	}

	state.index = queue_sel;
	state.num = 0; /* no reservation */
	dev->ops->send_request(dev, VHOST_USER_SET_VRING_BASE, &state);
	rc = dev->ops->send_request(dev, VHOST_USER_SET_VRING_BASE, &state);
	if (rc < 0) {
		return rc;
	}

	dev->ops->send_request(dev, VHOST_USER_SET_VRING_ADDR, &addr);
	rc = dev->ops->send_request(dev, VHOST_USER_SET_VRING_ADDR, &addr);
	if (rc < 0) {
		return rc;
	}

	/* Of all per virtqueue MSGs, make sure VHOST_USER_SET_VRING_KICK comes
	 * lastly because vhost depends on this msg to judge if
@@ -96,9 +104,7 @@ virtio_user_kick_queue(struct virtio_dev *vdev, uint32_t queue_sel)
	 */
	file.index = queue_sel;
	file.fd = dev->kickfds[queue_sel];
	dev->ops->send_request(dev, VHOST_USER_SET_VRING_KICK, &file);

	return 0;
	return dev->ops->send_request(dev, VHOST_USER_SET_VRING_KICK, &file);
}

static int
@@ -109,9 +115,8 @@ virtio_user_stop_queue(struct virtio_dev *vdev, uint32_t queue_sel)

	state.index = queue_sel;
	state.num = 0;
	dev->ops->send_request(dev, VHOST_USER_GET_VRING_BASE, &state);

	return 0;
	return dev->ops->send_request(dev, VHOST_USER_GET_VRING_BASE, &state);
}

static int