]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_hostdev: move ColdBoot as a flag
authorChunyan Liu <cyliu@suse.com>
Wed, 5 Mar 2014 11:12:04 +0000 (19:12 +0800)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 12 Mar 2014 16:03:04 +0000 (16:03 +0000)
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.

src/qemu/qemu_hostdev.c
src/qemu/qemu_hostdev.h
src/qemu/qemu_process.c

index 32b592107420e16911472960c899b0f730349b86..72d84c821f8b7aa27fd501889ebfb5478d27cd64 100644 (file)
@@ -1003,13 +1003,14 @@ qemuPrepareHostUSBDevices(virQEMUDriverPtr driver,
                           const char *name,
                           virDomainHostdevDefPtr *hostdevs,
                           int nhostdevs,
-                          bool coldBoot)
+                          unsigned int flags)
 {
     size_t i;
     int ret = -1;
     virUSBDeviceListPtr list;
     virUSBDevicePtr tmp;
     virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
+    bool coldBoot = !!(flags & VIR_HOSTDEV_COLD_BOOT);
 
     /* To prevent situation where USB device is assigned to two domains
      * we need to keep a list of currently assigned USB devices.
@@ -1201,7 +1202,6 @@ int
 qemuPrepareHostDevices(virQEMUDriverPtr driver,
                        virDomainDefPtr def,
                        virQEMUCapsPtr qemuCaps,
-                       bool coldBoot,
                        unsigned int flags)
 {
     if (!def->nhostdevs)
@@ -1213,7 +1213,7 @@ qemuPrepareHostDevices(virQEMUDriverPtr driver,
         return -1;
 
     if (qemuPrepareHostUSBDevices(driver, def->name,
-                                  def->hostdevs, def->nhostdevs, coldBoot) < 0)
+                                  def->hostdevs, def->nhostdevs, flags) < 0)
         return -1;
 
     if (qemuPrepareHostdevSCSIDevices(driver, def->name,
index d0ed82f3ab0be56d8d360dfb0ed1db6f798e7a88..7c4e95acc5dd0d2815724ba28ceec9506b6b5be1 100644 (file)
@@ -29,6 +29,7 @@
 
 typedef enum {
     VIR_HOSTDEV_STRICT_ACS_CHECK     = (1 << 0), /* strict acs check */
+    VIR_HOSTDEV_COLD_BOOT            = (1 << 1), /* cold boot */
 } virHostdevFlag;
 
 int qemuUpdateActivePciHostdevs(virQEMUDriverPtr driver,
@@ -51,7 +52,7 @@ qemuPrepareHostUSBDevices(virQEMUDriverPtr driver,
                           const char *name,
                           virDomainHostdevDefPtr *hostdevs,
                           int nhostdevs,
-                          bool coldBoot);
+                          unsigned int flags);
 int qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver,
                                   const char *name,
                                   virDomainHostdevDefPtr *hostdevs,
@@ -59,7 +60,6 @@ int qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver,
 int qemuPrepareHostDevices(virQEMUDriverPtr driver,
                            virDomainDefPtr def,
                            virQEMUCapsPtr qemuCaps,
-                           bool coldBoot,
                            unsigned int flags);
 void
 qemuDomainReAttachHostUsbDevices(virQEMUDriverPtr driver,
index a2fc730fc3c9e2decf783988e2a9d4b4b6728cb1..6a3c8460a1122ab74ae43a678ef2db182af95107 100644 (file)
@@ -3687,8 +3687,10 @@ int qemuProcessStart(virConnectPtr conn,
     VIR_DEBUG("Preparing host devices");
     if (!cfg->relaxedACS)
         hostdev_flags |= VIR_HOSTDEV_STRICT_ACS_CHECK;
+    if (!migrateFrom)
+        hostdev_flags |= VIR_HOSTDEV_COLD_BOOT;
     if (qemuPrepareHostDevices(driver, vm->def, priv->qemuCaps,
-                               !migrateFrom, hostdev_flags) < 0)
+                               hostdev_flags) < 0)
         goto cleanup;
 
     VIR_DEBUG("Preparing chr devices");