From 14c7e9e52aaa87d5ef354abb5f4c7385ba5bb4c6 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 13 Dec 2012 10:46:22 +0000 Subject: [PATCH] launch: appliance: Disable virtio-scsi if qemu <= 1.1. Debian Wheezy (7) ships with old qemu 1.1 which claims to support virtio-scsi but in reality it's broken. Disable virtio-scsi in this case. --- src/launch-appliance.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/launch-appliance.c b/src/launch-appliance.c index 09f63ee15..4f21db7ac 100644 --- a/src/launch-appliance.c +++ b/src/launch-appliance.c @@ -914,6 +914,11 @@ qemu_supports_virtio_scsi (guestfs_h *g) { int r; + if (!g->app.qemu_help) { + if (test_qemu (g) == -1) + return 0; /* safe option? */ + } + /* g->app.virtio_scsi has these values: * 0 = untested (after handle creation) * 1 = supported @@ -921,13 +926,18 @@ qemu_supports_virtio_scsi (guestfs_h *g) * 3 = test failed (use virtio-blk) */ if (g->app.virtio_scsi == 0) { - r = qemu_supports_device (g, "virtio-scsi-pci"); - if (r > 0) - g->app.virtio_scsi = 1; - else if (r == 0) + /* qemu 1.1 claims to support virtio-scsi but in reality it's broken. */ + if (g->app.qemu_version_major == 1 && g->app.qemu_version_minor < 2) g->app.virtio_scsi = 2; - else - g->app.virtio_scsi = 3; + else { + r = qemu_supports_device (g, "virtio-scsi-pci"); + if (r > 0) + g->app.virtio_scsi = 1; + else if (r == 0) + g->app.virtio_scsi = 2; + else + g->app.virtio_scsi = 3; + } } return g->app.virtio_scsi == 1;