Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > ebe084c140192657f9094e135a84202c > files > 12

libvirt-0.8.2-29.el5.src.rpm

From 590082c305a366f96a833a794c5c8f7661faa5ad Mon Sep 17 00:00:00 2001
Message-Id: <590082c305a366f96a833a794c5c8f7661faa5ad.1284409900.git.jdenemar@redhat.com>
From: Chris Wright <chrisw@redhat.com>
Date: Mon, 26 Jul 2010 18:23:17 +0200
Subject: [PATCH] Add helpers qemuPrepareHostdevPCIDevice and qemuDomainReAttachHostdevDevices

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=630620

- src/qemu/qemu_driver.c: These new helpers take hostdev list and count
  directly rather than getting them indirectly from domain definition.
  This will allow reuse for the attach-device case.
(cherry picked from commit f1365b558d0788512e14ce8a9b65b6fb247dc6fd)
---
 src/qemu/qemu_driver.c |   34 +++++++++++++++++++++++++---------
 1 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c7fd8a9..859f2af 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2862,14 +2862,15 @@ cleanup:
 
 
 static int
-qemuPrepareHostPCIDevices(struct qemud_driver *driver,
-                          virDomainDefPtr def)
+qemuPrepareHostdevPCIDevices(struct qemud_driver *driver,
+                             virDomainHostdevDefPtr *hostdevs,
+                             int nhostdevs)
 {
     pciDeviceList *pcidevs;
     int i;
     int ret = -1;
 
-    if (!(pcidevs = qemuGetPciHostDeviceList(def->hostdevs, def->nhostdevs)))
+    if (!(pcidevs = qemuGetPciHostDeviceList(hostdevs, nhostdevs)))
         return -1;
 
     /* We have to use 3 loops here. *All* devices must
@@ -2919,6 +2920,13 @@ cleanup:
     return ret;
 }
 
+static int
+qemuPrepareHostPCIDevices(struct qemud_driver *driver,
+                          virDomainDefPtr def)
+{
+    return qemuPrepareHostdevPCIDevices(driver, def->hostdevs, def->nhostdevs);
+}
+
 
 static int
 qemuPrepareHostUSBDevices(struct qemud_driver *driver ATTRIBUTE_UNUSED,
@@ -3012,16 +3020,14 @@ qemudReattachManagedDevice(pciDevice *dev, struct qemud_driver *driver)
 }
 
 static void
-qemuDomainReAttachHostDevices(struct qemud_driver *driver,
-                              virDomainDefPtr def)
+qemuDomainReAttachHostdevDevices(struct qemud_driver *driver,
+                              virDomainHostdevDefPtr *hostdevs,
+                              int nhostdevs)
 {
     pciDeviceList *pcidevs;
     int i;
 
-    if (!def->nhostdevs)
-        return;
-
-    if (!(pcidevs = qemuGetPciHostDeviceList(def->hostdevs, def->nhostdevs))) {
+    if (!(pcidevs = qemuGetPciHostDeviceList(hostdevs, nhostdevs))) {
         virErrorPtr err = virGetLastError();
         VIR_ERROR(_("Failed to allocate pciDeviceList: %s"),
                   err ? err->message : _("unknown error"));
@@ -3055,6 +3061,16 @@ qemuDomainReAttachHostDevices(struct qemud_driver *driver,
     pciDeviceListFree(pcidevs);
 }
 
+static void
+qemuDomainReAttachHostDevices(struct qemud_driver *driver,
+                              virDomainDefPtr def)
+{
+    if (!def->nhostdevs)
+        return;
+
+    qemuDomainReAttachHostdevDevices(driver, def->hostdevs, def->nhostdevs);
+}
+
 static const char *const defaultDeviceACL[] = {
     "/dev/null", "/dev/full", "/dev/zero",
     "/dev/random", "/dev/urandom",
-- 
1.7.2.2