[Pkg-libvirt-commits] [SCM] Libvirt Debian packaging branch, master, updated. debian/0.6.5-3-3-g5578fd3

Laurent Léonard laurent at open-minds.org
Thu Aug 6 19:16:29 UTC 2009


The following commit has been merged in the master branch:
commit 5578fd39c9cfcdc2a9339a33b336d222ffd5193a
Author: Laurent Léonard <laurent at open-minds.org>
Date:   Thu Aug 6 21:08:16 2009 +0200

    Drop 0005-Fix-PCI-device-hotplug-unplug-with-newer-QEMU.patch.
    
    Fixed upstream.

diff --git a/debian/patches/0005-Fix-PCI-device-hotplug-unplug-with-newer-QEMU.patch b/debian/patches/0005-Fix-PCI-device-hotplug-unplug-with-newer-QEMU.patch
deleted file mode 100644
index 5ebcddb..0000000
--- a/debian/patches/0005-Fix-PCI-device-hotplug-unplug-with-newer-QEMU.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From: Daniel P. Berrange <berrange at redhat.com>
-Date: Mon, 6 Jul 2009 15:58:55 +0100
-Subject: [PATCH] Fix PCI device hotplug/unplug with newer QEMU
-
-* src/qemu_driver.c: Try new monitor syntax for hotplug first. If
-  that fails fallback to old KVM specific syntax
----
- src/qemu_driver.c |   56 +++++++++++++++++++++++++++++++++++++++-------------
- 1 files changed, 42 insertions(+), 14 deletions(-)
-
-diff --git a/src/qemu_driver.c b/src/qemu_driver.c
-index 95ea882..827f3c6 100644
---- a/src/qemu_driver.c
-+++ b/src/qemu_driver.c
-@@ -3891,6 +3891,7 @@ static int qemudDomainAttachPciDiskDevice(virConnectPtr conn,
-     char *cmd, *reply, *s;
-     char *safe_path;
-     const char* type = virDomainDiskBusTypeToString(dev->data.disk->bus);
-+    int tryOldSyntax = 0;
- 
-     for (i = 0 ; i < vm->def->ndisks ; i++) {
-         if (STREQ(vm->def->disks[i]->dst, dev->data.disk->dst)) {
-@@ -3905,14 +3906,15 @@ static int qemudDomainAttachPciDiskDevice(virConnectPtr conn,
-         return -1;
-     }
- 
-+try_command:
-     safe_path = qemudEscapeMonitorArg(dev->data.disk->src);
-     if (!safe_path) {
-         virReportOOMError(conn);
-         return -1;
-     }
- 
--    ret = virAsprintf(&cmd, "pci_add 0 storage file=%s,if=%s",
--                      safe_path, type);
-+    ret = virAsprintf(&cmd, "pci_add %s storage file=%s,if=%s",
-+                      (tryOldSyntax ? "0": "pci_addr=auto"), safe_path, type);
-     VIR_FREE(safe_path);
-     if (ret == -1) {
-         virReportOOMError(conn);
-@@ -3928,17 +3930,27 @@ static int qemudDomainAttachPciDiskDevice(virConnectPtr conn,
- 
-     DEBUG ("%s: pci_add reply: %s", vm->def->name, reply);
-     /* If the command succeeds qemu prints:
--     * OK bus 0... */
--#define PCI_ATTACH_OK_MSG "OK bus 0, slot "
--    if ((s=strstr(reply, PCI_ATTACH_OK_MSG))) {
--        char* dummy = s;
--        s += strlen(PCI_ATTACH_OK_MSG);
-+     * OK bus 0, slot XXX...
-+     * or
-+     * OK domain 0, bus 0, slot XXX
-+     */
-+    if ((s = strstr(reply, "OK ")) &&
-+        (s = strstr(s, "slot "))) {
-+        char *dummy = s;
-+        s += strlen("slot ");
- 
-         if (virStrToLong_i ((const char*)s, &dummy, 10, &dev->data.disk->slotnum) == -1)
-             VIR_WARN("%s", _("Unable to parse slot number\n"));
-+        /* XXX not neccessarily always going to end up in domain 0 / bus 0 :-( */
-+        /* XXX this slotnum is not persistant across restarts :-( */
-+    } else if (!tryOldSyntax && strstr(reply, "invalid char in expression")) {
-+        VIR_FREE(reply);
-+        VIR_FREE(cmd);
-+        tryOldSyntax = 1;
-+        goto try_command;
-     } else {
-         qemudReportError (conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
--                          _("adding %s disk failed"), type);
-+                          _("adding %s disk failed: %s"), type, reply);
-         VIR_FREE(reply);
-         VIR_FREE(cmd);
-         return -1;
-@@ -4155,6 +4167,7 @@ static int qemudDomainDetachPciDiskDevice(virConnectPtr conn,
-     char *cmd = NULL;
-     char *reply = NULL;
-     virDomainDiskDefPtr detach = NULL;
-+    int tryOldSyntax = 0;
- 
-     for (i = 0 ; i < vm->def->ndisks ; i++) {
-         if (STREQ(vm->def->disks[i]->dst, dev->data.disk->dst)) {
-@@ -4176,9 +4189,17 @@ static int qemudDomainDetachPciDiskDevice(virConnectPtr conn,
-         goto cleanup;
-     }
- 
--    if (virAsprintf(&cmd, "pci_del 0 %d", detach->slotnum) < 0) {
--        virReportOOMError(conn);
--        goto cleanup;
-+try_command:
-+    if (tryOldSyntax) {
-+        if (virAsprintf(&cmd, "pci_del 0 %d", detach->slotnum) < 0) {
-+            virReportOOMError(conn);
-+            goto cleanup;
-+        }
-+    } else {
-+        if (virAsprintf(&cmd, "pci_del pci_addr=0:0:%d", detach->slotnum) < 0) {
-+            virReportOOMError(conn);
-+            goto cleanup;
-+        }
-     }
- 
-     if (qemudMonitorCommand(vm, cmd, &reply) < 0) {
-@@ -4188,12 +4209,19 @@ static int qemudDomainDetachPciDiskDevice(virConnectPtr conn,
-     }
- 
-     DEBUG ("%s: pci_del reply: %s",vm->def->name,  reply);
-+
-+    if (!tryOldSyntax &&
-+        strstr(reply, "extraneous characters")) {
-+        tryOldSyntax = 1;
-+        goto try_command;
-+    }
-     /* If the command fails due to a wrong slot qemu prints: invalid slot,
-      * nothing is printed on success */
--    if (strstr(reply, "invalid slot")) {
-+    if (strstr(reply, "invalid slot") ||
-+        strstr(reply, "Invalid pci address")) {
-         qemudReportError (conn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
--                          _("failed to detach disk %s: invalid slot %d"),
--                          detach->dst, detach->slotnum);
-+                          _("failed to detach disk %s: invalid slot %d: %s"),
-+                          detach->dst, detach->slotnum, reply);
-         goto cleanup;
-     }
- 
--- 
diff --git a/debian/patches/series b/debian/patches/series
index 3539ac0..a8c0f9e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,4 +2,3 @@
 0002-qemu-disable-network.diff.patch
 0003-allow-libvirt-group-to-access-the-socket.patch
 0004-fix-Debian-specific-path-to-hvm-loader.patch
-0005-Fix-PCI-device-hotplug-unplug-with-newer-QEMU.patch

-- 
Libvirt Debian packaging



More information about the Pkg-libvirt-commits mailing list