summaryrefslogtreecommitdiffstats
path: root/hw/block
diff options
context:
space:
mode:
authorCornelia Huck2014-07-25 14:10:46 +0200
committerStefan Hajnoczi2014-08-15 19:03:13 +0200
commit267e1a204c073eac28b1510bcc2404668d306e17 (patch)
tree4997ae3979c50469bfbb80b4db0e01d12ac1a410 /hw/block
parentchannel-posix: using qemu_set_nonblock() instead of fcntl(O_NONBLOCK) (diff)
downloadqemu-267e1a204c073eac28b1510bcc2404668d306e17.tar.gz
qemu-267e1a204c073eac28b1510bcc2404668d306e17.tar.xz
qemu-267e1a204c073eac28b1510bcc2404668d306e17.zip
dataplane: print why starting failed
Setting up guest or host notifiers may fail, but the user will have no idea why: Let's print the error returned by the callback. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'hw/block')
-rw-r--r--hw/block/dataplane/virtio-blk.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index d6ba65ca23..527a53ce37 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -218,6 +218,7 @@ void virtio_blk_data_plane_start(VirtIOBlockDataPlane *s)
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
VirtIOBlock *vblk = VIRTIO_BLK(s->vdev);
VirtQueue *vq;
+ int r;
if (s->started) {
return;
@@ -236,16 +237,18 @@ void virtio_blk_data_plane_start(VirtIOBlockDataPlane *s)
}
/* Set up guest notifier (irq) */
- if (k->set_guest_notifiers(qbus->parent, 1, true) != 0) {
- fprintf(stderr, "virtio-blk failed to set guest notifier, "
- "ensure -enable-kvm is set\n");
+ r = k->set_guest_notifiers(qbus->parent, 1, true);
+ if (r != 0) {
+ fprintf(stderr, "virtio-blk failed to set guest notifier (%d), "
+ "ensure -enable-kvm is set\n", r);
exit(1);
}
s->guest_notifier = virtio_queue_get_guest_notifier(vq);
/* Set up virtqueue notify */
- if (k->set_host_notifier(qbus->parent, 0, true) != 0) {
- fprintf(stderr, "virtio-blk failed to set host notifier\n");
+ r = k->set_host_notifier(qbus->parent, 0, true);
+ if (r != 0) {
+ fprintf(stderr, "virtio-blk failed to set host notifier (%d)\n", r);
exit(1);
}
s->host_notifier = *virtio_queue_get_host_notifier(vq);