[qemu] Fix qemu crashing (on an assert) whenever USB-2.0 isoc transfers are used

Hans de Goede jwrdegoede at fedoraproject.org
Fri Jul 6 10:12:26 UTC 2012


commit ad661016890192fd77908fe6ce6a380229b1c3f2
Author: Hans de Goede <hdegoede at redhat.com>
Date:   Fri Jul 6 12:12:49 2012 +0200

    Fix qemu crashing (on an assert) whenever USB-2.0 isoc transfers are used

 ...x-an-assert-whenever-isoc-transfers-are-u.patch |   30 ++++++++++++++++++++
 qemu.spec                                          |    7 ++++-
 2 files changed, 36 insertions(+), 1 deletions(-)
---
diff --git a/0202-usb-ehci-Fix-an-assert-whenever-isoc-transfers-are-u.patch b/0202-usb-ehci-Fix-an-assert-whenever-isoc-transfers-are-u.patch
new file mode 100644
index 0000000..0a62435
--- /dev/null
+++ b/0202-usb-ehci-Fix-an-assert-whenever-isoc-transfers-are-u.patch
@@ -0,0 +1,30 @@
+From 050146c8b005683cbc36a837844d2d637b27100c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Fri, 6 Jul 2012 12:04:15 +0200
+Subject: [PATCH] usb-ehci: Fix an assert whenever isoc transfers are used
+
+hcd-ehci.c is missing an usb_packet_init() call for the ipacket UsbPacket
+it uses for isoc transfers, triggering an assert (taking the entire vm down)
+in usb_packet_setup as soon as any isoc transfers are done by a high speed
+USB device.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ hw/usb/hcd-ehci.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
+index e759c99..eaa3ddd 100644
+--- a/hw/usb/hcd-ehci.c
++++ b/hw/usb/hcd-ehci.c
+@@ -2300,6 +2300,7 @@ static int usb_ehci_initfn(PCIDevice *dev)
+     s->frame_timer = qemu_new_timer_ns(vm_clock, ehci_frame_timer, s);
+     QTAILQ_INIT(&s->aqueues);
+     QTAILQ_INIT(&s->pqueues);
++    usb_packet_init(&s->ipacket);
+ 
+     qemu_register_reset(ehci_reset, s);
+ 
+-- 
+1.7.10.4
+
diff --git a/qemu.spec b/qemu.spec
index 9989a53..9cf6e11 100644
--- a/qemu.spec
+++ b/qemu.spec
@@ -38,7 +38,7 @@
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
 Version: 1.1.0
-Release: 4%{?dist}
+Release: 5%{?dist}
 # Epoch because we pushed a qemu-1.0 package
 Epoch: 2
 License: GPLv2+ and LGPLv2+ and BSD
@@ -103,6 +103,7 @@ Patch113: 0113-char-Disable-write-callback-if-throttled-chardev-is-.patch
 
 # USB-redir bugfixes
 Patch201: 0201-usb-redir-Correctly-handle-the-usb_redir_babble-usbr.patch
+Patch202: 0202-usb-ehci-Fix-an-assert-whenever-isoc-transfers-are-u.patch
 
 BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel
 BuildRequires: libaio-devel
@@ -371,6 +372,7 @@ such as kvm_stat.
 %patch113 -p1
 
 %patch201 -p1
+%patch202 -p1
 
 
 %build
@@ -807,6 +809,9 @@ fi
 %{_mandir}/man1/qemu-img.1*
 
 %changelog
+* Fri Jul  6 2012 Hans de Goede <hdegoede at redhat.com> - 2:1.1.0-5
+- Fix qemu crashing (on an assert) whenever USB-2.0 isoc transfers are used
+
 * Thu Jul  5 2012 Richard W.M. Jones <rjones at redhat.com> - 2:1.1.0-4
 - Disable tests since they hang intermittently.
 - Add kvmvapic.bin (replaces vapic.bin).


More information about the scm-commits mailing list