[libvirt] [PATCH v13 08/49] qemu_hostdev: move ColdBoot as a flag

Chunyan Liu cyliu at suse.com
Sat Mar 1 06:29:03 UTC 2014


For extracting hostdev codes from qemu_hostdev.c to common library, change qemu
specific COLD_BOOT handling to be a flag, and pass it to hostdev functions.

Signed-off-by: Chunyan Liu <cyliu at suse.com>
---
 src/qemu/qemu_hostdev.c |    6 +++---
 src/qemu/qemu_hostdev.h |    4 ++--
 src/qemu/qemu_process.c |    4 +++-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/qemu/qemu_hostdev.c b/src/qemu/qemu_hostdev.c
index 5f2dc44..6be58ef 100644
--- a/src/qemu/qemu_hostdev.c
+++ b/src/qemu/qemu_hostdev.c
@@ -1010,7 +1010,7 @@ out:
 int
 qemuPrepareHostUSBDevices(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
                           virDomainDefPtr def,
-                          bool coldBoot)
+                          unsigned int flags)
 {
     size_t i;
     int ret = -1;
@@ -1019,6 +1019,7 @@ qemuPrepareHostUSBDevices(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
     virDomainHostdevDefPtr *hostdevs = def->hostdevs;
     int nhostdevs = def->nhostdevs;
     virHostdevManagerPtr hostdev_mgr;
+    bool coldBoot = !!(flags & VIR_COLD_BOOT);
 
     /* To prevent situation where USB device is assigned to two domains
      * we need to keep a list of currently assigned USB devices.
@@ -1216,7 +1217,6 @@ int
 qemuPrepareHostDevices(virQEMUDriverPtr driver,
                        virDomainDefPtr def,
                        virQEMUCapsPtr qemuCaps,
-                       bool coldBoot,
                        unsigned int flags)
 {
     if (!def->nhostdevs)
@@ -1227,7 +1227,7 @@ qemuPrepareHostDevices(virQEMUDriverPtr driver,
                                      qemuCaps, flags) < 0)
         return -1;
 
-    if (qemuPrepareHostUSBDevices(driver, def, coldBoot) < 0)
+    if (qemuPrepareHostUSBDevices(driver, def, flags) < 0)
         return -1;
 
     if (qemuPrepareHostdevSCSIDevices(driver, def->name,
diff --git a/src/qemu/qemu_hostdev.h b/src/qemu/qemu_hostdev.h
index 48ca610..c137302 100644
--- a/src/qemu/qemu_hostdev.h
+++ b/src/qemu/qemu_hostdev.h
@@ -29,6 +29,7 @@
 
 typedef enum {
      VIR_STRICT_ACS_CHECK     = (1 << 0), /* strict acs check */
+     VIR_COLD_BOOT            = (1 << 1), /* cold boot */
 } virHostdevFlag;
 
 int qemuUpdateActivePciHostdevs(virQEMUDriverPtr driver,
@@ -49,7 +50,7 @@ int qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver,
 int
 qemuPrepareHostUSBDevices(virQEMUDriverPtr driver,
                           virDomainDefPtr def,
-                          bool coldBoot);
+                          unsigned int flags);
 int qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver,
                                   const char *name,
                                   virDomainHostdevDefPtr *hostdevs,
@@ -57,7 +58,6 @@ int qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver,
 int qemuPrepareHostDevices(virQEMUDriverPtr driver,
                            virDomainDefPtr def,
                            virQEMUCapsPtr qemuCaps,
-                           bool coldBoot,
                            unsigned int flags);
 void
 qemuDomainReAttachHostUsbDevices(virQEMUDriverPtr driver,
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 47ecfe4..3fbe4d1 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -3688,8 +3688,10 @@ int qemuProcessStart(virConnectPtr conn,
     VIR_DEBUG("Preparing host devices");
     if (!cfg->relaxedACS)
         hostdev_flags |= VIR_STRICT_ACS_CHECK;
+    if (!migrateFrom)
+        hostdev_flags |= VIR_COLD_BOOT;
     if (qemuPrepareHostDevices(driver, vm->def, priv->qemuCaps,
-                               !migrateFrom, hostdev_flags) < 0)
+                                                    hostdev_flags) < 0)
         goto cleanup;
 
     VIR_DEBUG("Preparing chr devices");
-- 
1.6.0.2




More information about the libvir-list mailing list