|
|
a30de4 |
From eddfb0a765e0246d0fb397414f32403f055488a3 Mon Sep 17 00:00:00 2001
|
|
|
a30de4 |
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
|
a30de4 |
Date: Thu, 18 May 2017 15:59:38 +0100
|
|
|
a30de4 |
Subject: [PATCH] lib: Add VIRTIO_DEVICE_NAME macro to handle virtio-mmio vs
|
|
|
a30de4 |
CCW vs virtio-PCI.
|
|
|
a30de4 |
|
|
|
a30de4 |
(cherry picked from commit a5bd493e3f90945cb8e913f9c680bedbdf26aaaa)
|
|
|
a30de4 |
|
|
|
a30de4 |
PT: the VIRTIO_DEVICE_NAME macros are left in guestfs-internal.h, since
|
|
|
a30de4 |
the VIRTIO_* macros were used in other places than launch-direct.c.
|
|
|
a30de4 |
---
|
|
|
a30de4 |
lib/guestfs-internal.h | 22 +++++-----------------
|
|
|
a30de4 |
lib/launch-direct.c | 16 ++++++++--------
|
|
|
a30de4 |
lib/launch-libvirt.c | 2 +-
|
|
|
a30de4 |
lib/qemu.c | 2 +-
|
|
|
a30de4 |
4 files changed, 15 insertions(+), 27 deletions(-)
|
|
|
a30de4 |
|
|
|
a30de4 |
diff --git a/lib/guestfs-internal.h b/lib/guestfs-internal.h
|
|
|
a30de4 |
index f035e0931..d962aacd4 100644
|
|
|
a30de4 |
--- a/lib/guestfs-internal.h
|
|
|
a30de4 |
+++ b/lib/guestfs-internal.h
|
|
|
a30de4 |
@@ -142,27 +142,15 @@
|
|
|
a30de4 |
/* Maximum size of Windows explorer.exe. 2.6MB on Windows 7. */
|
|
|
a30de4 |
#define MAX_WINDOWS_EXPLORER_SIZE (4 * 1000 * 1000)
|
|
|
a30de4 |
|
|
|
a30de4 |
-/* Differences in device names on ARMv7 (virtio-mmio), s/390x (CCW) vs
|
|
|
a30de4 |
- * normal hardware with PCI.
|
|
|
a30de4 |
+/* Differences in qemu device names on ARMv7 (virtio-mmio), s/390x
|
|
|
a30de4 |
+ * (CCW) vs normal hardware with PCI.
|
|
|
a30de4 |
*/
|
|
|
a30de4 |
#if defined(__arm__)
|
|
|
a30de4 |
-#define VIRTIO_BLK "virtio-blk-device"
|
|
|
a30de4 |
-#define VIRTIO_SCSI "virtio-scsi-device"
|
|
|
a30de4 |
-#define VIRTIO_SERIAL "virtio-serial-device"
|
|
|
a30de4 |
-#define VIRTIO_NET "virtio-net-device"
|
|
|
a30de4 |
-#define VIRTIO_RNG "virtio-rng-device"
|
|
|
a30de4 |
+#define VIRTIO_DEVICE_NAME(type) type "-device"
|
|
|
a30de4 |
#elif defined(__s390x__)
|
|
|
a30de4 |
-#define VIRTIO_BLK "virtio-blk-ccw"
|
|
|
a30de4 |
-#define VIRTIO_SCSI "virtio-scsi-ccw"
|
|
|
a30de4 |
-#define VIRTIO_SERIAL "virtio-serial-ccw"
|
|
|
a30de4 |
-#define VIRTIO_NET "virtio-net-ccw"
|
|
|
a30de4 |
-#define VIRTIO_RNG "virtio-rng-ccw"
|
|
|
a30de4 |
+#define VIRTIO_DEVICE_NAME(type) type "-ccw"
|
|
|
a30de4 |
#else
|
|
|
a30de4 |
-#define VIRTIO_BLK "virtio-blk-pci"
|
|
|
a30de4 |
-#define VIRTIO_SCSI "virtio-scsi-pci"
|
|
|
a30de4 |
-#define VIRTIO_SERIAL "virtio-serial-pci"
|
|
|
a30de4 |
-#define VIRTIO_NET "virtio-net-pci"
|
|
|
a30de4 |
-#define VIRTIO_RNG "virtio-rng-pci"
|
|
|
a30de4 |
+#define VIRTIO_DEVICE_NAME(type) type "-pci"
|
|
|
a30de4 |
#endif
|
|
|
a30de4 |
|
|
|
a30de4 |
/* Machine types. */
|
|
|
a30de4 |
diff --git a/lib/launch-direct.c b/lib/launch-direct.c
|
|
|
a30de4 |
index c8841bfe4..0fef05927 100644
|
|
|
a30de4 |
--- a/lib/launch-direct.c
|
|
|
a30de4 |
+++ b/lib/launch-direct.c
|
|
|
a30de4 |
@@ -349,7 +349,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
*/
|
|
|
a30de4 |
if (guestfs_int_qemu_supports (g, data->qemu_data, "-global")) {
|
|
|
a30de4 |
ADD_CMDLINE ("-global");
|
|
|
a30de4 |
- ADD_CMDLINE (VIRTIO_BLK ".scsi=off");
|
|
|
a30de4 |
+ ADD_CMDLINE (VIRTIO_DEVICE_NAME ("virtio-blk") ".scsi=off");
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
if (guestfs_int_qemu_supports (g, data->qemu_data, "-nodefconfig"))
|
|
|
a30de4 |
@@ -463,11 +463,11 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
* when needing entropy.
|
|
|
a30de4 |
*/
|
|
|
a30de4 |
if (guestfs_int_qemu_supports_device (g, data->qemu_data,
|
|
|
a30de4 |
- VIRTIO_RNG)) {
|
|
|
a30de4 |
+ VIRTIO_DEVICE_NAME ("virtio-rng"))) {
|
|
|
a30de4 |
ADD_CMDLINE ("-object");
|
|
|
a30de4 |
ADD_CMDLINE ("rng-random,filename=/dev/urandom,id=rng0");
|
|
|
a30de4 |
ADD_CMDLINE ("-device");
|
|
|
a30de4 |
- ADD_CMDLINE (VIRTIO_RNG ",rng=rng0");
|
|
|
a30de4 |
+ ADD_CMDLINE (VIRTIO_DEVICE_NAME ("virtio-rng") ",rng=rng0");
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
/* Add drives */
|
|
|
a30de4 |
@@ -477,7 +477,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
if (virtio_scsi) {
|
|
|
a30de4 |
/* Create the virtio-scsi bus. */
|
|
|
a30de4 |
ADD_CMDLINE ("-device");
|
|
|
a30de4 |
- ADD_CMDLINE (VIRTIO_SCSI ",id=scsi");
|
|
|
a30de4 |
+ ADD_CMDLINE (VIRTIO_DEVICE_NAME ("virtio-scsi") ",id=scsi");
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
ITER_DRIVES (g, i, drv) {
|
|
|
a30de4 |
@@ -564,7 +564,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
ADD_CMDLINE ("-drive");
|
|
|
a30de4 |
ADD_CMDLINE_PRINTF ("%s,if=none" /* sic */, param);
|
|
|
a30de4 |
ADD_CMDLINE ("-device");
|
|
|
a30de4 |
- ADD_CMDLINE_PRINTF (VIRTIO_BLK ",drive=hd%zu", i);
|
|
|
a30de4 |
+ ADD_CMDLINE_PRINTF (VIRTIO_DEVICE_NAME ("virtio-blk") ",drive=hd%zu", i);
|
|
|
a30de4 |
}
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
@@ -581,7 +581,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
}
|
|
|
a30de4 |
else {
|
|
|
a30de4 |
ADD_CMDLINE ("-device");
|
|
|
a30de4 |
- ADD_CMDLINE (VIRTIO_BLK ",drive=appliance");
|
|
|
a30de4 |
+ ADD_CMDLINE (VIRTIO_DEVICE_NAME ("virtio-blk") ",drive=appliance");
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
appliance_dev = make_appliance_dev (g, virtio_scsi);
|
|
|
a30de4 |
@@ -589,7 +589,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
|
|
|
a30de4 |
/* Create the virtio serial bus. */
|
|
|
a30de4 |
ADD_CMDLINE ("-device");
|
|
|
a30de4 |
- ADD_CMDLINE (VIRTIO_SERIAL);
|
|
|
a30de4 |
+ ADD_CMDLINE (VIRTIO_DEVICE_NAME ("virtio-serial"));
|
|
|
a30de4 |
|
|
|
a30de4 |
/* Create the serial console. */
|
|
|
a30de4 |
#ifndef __s390x__
|
|
|
a30de4 |
@@ -626,7 +626,7 @@ launch_direct (guestfs_h *g, void *datav, const char *arg)
|
|
|
a30de4 |
ADD_CMDLINE ("-netdev");
|
|
|
a30de4 |
ADD_CMDLINE ("user,id=usernet,net=169.254.0.0/16");
|
|
|
a30de4 |
ADD_CMDLINE ("-device");
|
|
|
a30de4 |
- ADD_CMDLINE (VIRTIO_NET ",netdev=usernet");
|
|
|
a30de4 |
+ ADD_CMDLINE (VIRTIO_DEVICE_NAME ("virtio-net") ",netdev=usernet");
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
ADD_CMDLINE ("-append");
|
|
|
a30de4 |
diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c
|
|
|
a30de4 |
index 49bd40583..d10c7cb40 100644
|
|
|
a30de4 |
--- a/lib/launch-libvirt.c
|
|
|
a30de4 |
+++ b/lib/launch-libvirt.c
|
|
|
a30de4 |
@@ -1803,7 +1803,7 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g,
|
|
|
a30de4 |
} end_element ();
|
|
|
a30de4 |
|
|
|
a30de4 |
start_element ("qemu:arg") {
|
|
|
a30de4 |
- attribute ("value", VIRTIO_NET ",netdev=usernet");
|
|
|
a30de4 |
+ attribute ("value", VIRTIO_DEVICE_NAME ("virtio-net") ",netdev=usernet");
|
|
|
a30de4 |
} end_element ();
|
|
|
a30de4 |
}
|
|
|
a30de4 |
|
|
|
a30de4 |
diff --git a/lib/qemu.c b/lib/qemu.c
|
|
|
a30de4 |
index c9debe937..887e31bc4 100644
|
|
|
a30de4 |
--- a/lib/qemu.c
|
|
|
a30de4 |
+++ b/lib/qemu.c
|
|
|
a30de4 |
@@ -619,7 +619,7 @@ guestfs_int_qemu_supports_virtio_scsi (guestfs_h *g, struct qemu_data *data,
|
|
|
a30de4 |
if (old_or_broken_virtio_scsi (qemu_version))
|
|
|
a30de4 |
data->virtio_scsi = 2;
|
|
|
a30de4 |
else {
|
|
|
a30de4 |
- r = guestfs_int_qemu_supports_device (g, data, VIRTIO_SCSI);
|
|
|
a30de4 |
+ r = guestfs_int_qemu_supports_device (g, data, VIRTIO_DEVICE_NAME ("virtio-scsi"));
|
|
|
a30de4 |
if (r > 0)
|
|
|
a30de4 |
data->virtio_scsi = 1;
|
|
|
a30de4 |
else if (r == 0)
|
|
|
a30de4 |
--
|
|
|
a30de4 |
2.14.3
|
|
|
a30de4 |
|