Blame SOURCES/0042-lib-Add-VIRTIO_DEVICE_NAME-macro-to-handle-virtio-mm.patch

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