[qemu] Rebuild against latest spice-server and spice-protocol

Hans de Goede jwrdegoede at fedoraproject.org
Fri Sep 28 10:22:32 UTC 2012


commit ca70dc3e47e986e557804cede5cd86a10b2a7c32
Author: Hans de Goede <hdegoede at redhat.com>
Date:   Fri Sep 28 12:23:45 2012 +0200

    Rebuild against latest spice-server and spice-protocol
    
    - Fix non-seamless migration failing with vms with usb-redir devices,
      to allow boxes to load such vms from disk

 ...hange-usbredir_open_chardev-into-usbredir.patch |   49 ++++++++++++++++++++
 ...on-t-make-migration-fail-in-none-seamless.patch |   43 +++++++++++++++++
 qemu.spec                                          |   17 +++++--
 3 files changed, 105 insertions(+), 4 deletions(-)
---
diff --git a/0371-usb-redir-Change-usbredir_open_chardev-into-usbredir.patch b/0371-usb-redir-Change-usbredir_open_chardev-into-usbredir.patch
new file mode 100644
index 0000000..2d7b66c
--- /dev/null
+++ b/0371-usb-redir-Change-usbredir_open_chardev-into-usbredir.patch
@@ -0,0 +1,49 @@
+From 0ef8cdced724a03efea3523410ffd51cf1ec308d Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Thu, 27 Sep 2012 16:59:50 +0200
+Subject: [PATCH 371/372] usb-redir: Change usbredir_open_chardev into
+ usbredir_create_parser
+
+As we need to create the parser at more places.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ hw/usb/redirect.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
+index 78e93a7..5d16aff 100644
+--- a/hw/usb/redirect.c
++++ b/hw/usb/redirect.c
+@@ -872,15 +872,11 @@ static void usbredir_chardev_close_bh(void *opaque)
+     }
+ }
+ 
+-static void usbredir_chardev_open(USBRedirDevice *dev)
++static void usbredir_create_parser(USBRedirDevice *dev)
+ {
+     uint32_t caps[USB_REDIR_CAPS_SIZE] = { 0, };
+     int flags = 0;
+ 
+-    /* Make sure any pending closes are handled (no-op if none pending) */
+-    usbredir_chardev_close_bh(dev);
+-    qemu_bh_cancel(dev->chardev_close_bh);
+-
+     DPRINTF("creating usbredirparser\n");
+ 
+     dev->parser = qemu_oom_check(usbredirparser_create());
+@@ -992,7 +988,10 @@ static void usbredir_chardev_event(void *opaque, int event)
+     switch (event) {
+     case CHR_EVENT_OPENED:
+         DPRINTF("chardev open\n");
+-        usbredir_chardev_open(dev);
++        /* Make sure any pending closes are handled (no-op if none pending) */
++        usbredir_chardev_close_bh(dev);
++        qemu_bh_cancel(dev->chardev_close_bh);
++        usbredir_create_parser(dev);
+         break;
+     case CHR_EVENT_CLOSED:
+         DPRINTF("chardev close\n");
+-- 
+1.7.12
+
diff --git a/0372-usb-redir-Don-t-make-migration-fail-in-none-seamless.patch b/0372-usb-redir-Don-t-make-migration-fail-in-none-seamless.patch
new file mode 100644
index 0000000..109a3f3
--- /dev/null
+++ b/0372-usb-redir-Don-t-make-migration-fail-in-none-seamless.patch
@@ -0,0 +1,43 @@
+From adbc805b1f775ef8565bf8d074b45813daa2e779 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Thu, 27 Sep 2012 16:57:41 +0200
+Subject: [PATCH 372/372] usb-redir: Don't make migration fail in none
+ seamless case
+
+Instead simple disconnect the device like host redirection does on
+migration.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ hw/usb/redirect.c | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
+index 5d16aff..022ba42 100644
+--- a/hw/usb/redirect.c
++++ b/hw/usb/redirect.c
+@@ -1637,12 +1637,17 @@ static int usbredir_get_parser(QEMUFile *f, void *priv, size_t unused)
+     }
+ 
+     /*
+-     * Our chardev should be open already at this point, otherwise
+-     * the usbredir channel will be broken (ie spice without seamless)
++     * If our chardev is not open already at this point the usbredir connection
++     * has been broken (non seamless migration, or restore from disk).
++     *
++     * In this case create a temporary parser to receive the migration data,
++     * and schedule the close_bh to report the device as disconnected to the
++     * guest and to destroy the parser again.
+      */
+     if (dev->parser == NULL) {
+-        ERROR("get_parser called with closed chardev, failing migration\n");
+-        return -1;
++        WARNING("usb-redir connection broken during migration\n");
++        usbredir_create_parser(dev);
++        qemu_bh_schedule(dev->chardev_close_bh);
+     }
+ 
+     data = g_malloc(len);
+-- 
+1.7.12
+
diff --git a/qemu.spec b/qemu.spec
index 224a55c..8899cd4 100644
--- a/qemu.spec
+++ b/qemu.spec
@@ -39,7 +39,7 @@
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
 Version: 1.2.0
-Release: 10%{?dist}
+Release: 11%{?dist}
 # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
 Epoch: 2
 License: GPLv2+ and LGPLv2+ and BSD
@@ -205,6 +205,8 @@ Patch0368: 0368-uhci-Don-t-queue-up-packets-after-one-with-the-SPD-f.patch
 # Not yet upstream but should get there real soon
 Patch0369: 0369-ehci-Fix-interrupt-packet-MULT-handling.patch
 Patch0370: 0370-usb-redir-Adjust-pkg-config-check-for-usbredirparser.patch
+Patch0371: 0371-usb-redir-Change-usbredir_open_chardev-into-usbredir.patch
+Patch0372: 0372-usb-redir-Don-t-make-migration-fail-in-none-seamless.patch
 
 # Revert c3767ed0eb5d0.
 # NOT upstream (hopefully will be soon).
@@ -229,8 +231,8 @@ BuildRequires: libattr-devel
 BuildRequires: usbredir-devel >= 0.5.2
 BuildRequires: texinfo
 %ifarch %{ix86} x86_64
-BuildRequires: spice-protocol >= 0.12.1
-BuildRequires: spice-server-devel >= 0.11.3
+BuildRequires: spice-protocol >= 0.12.2
+BuildRequires: spice-server-devel >= 0.12.0
 BuildRequires: libseccomp-devel >= 1.0.0
 %endif
 # For network block driver
@@ -607,6 +609,8 @@ such as kvm_stat.
 %patch368 -p1
 %patch369 -p1
 %patch370 -p1
+%patch371 -p1
+%patch372 -p1
 
 %patch900 -p1
 
@@ -1077,7 +1081,12 @@ fi
 %{_mandir}/man1/qemu-img.1*
 
 %changelog
-* Tue Sep 25 2012 Hans de Goede <hdegoede at redhat.com> - 2:1.2.0-9
+* Fri Sep 28 2012 Hans de Goede <hdegoede at redhat.com> - 2:1.2.0-11
+- Rebuild against latest spice-server and spice-protocol
+- Fix non-seamless migration failing with vms with usb-redir devices,
+  to allow boxes to load such vms from disk
+
+* Tue Sep 25 2012 Hans de Goede <hdegoede at redhat.com> - 2:1.2.0-10
 - Sync Spice patchsets with upstream (rhbz#860238)
 - Fix building with usbredir >= 0.5.2
 


More information about the scm-commits mailing list