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: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/405918
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Dariusz Stojaczyk 2018-03-30 20:17:23 +02:00 committed by Jim Harris
parent 91bdec96c7
commit 3cb775b9ae

View File

@ -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