Fix interrupt endpoints not working with network/spice USB redirection
on guest with an emulated xhci controller (rhbz#1382331)
This commit is contained in:
parent
504e25420b
commit
a2729a240b
29
qemu-2.7.0-usb-redirect-wakeup.patch
Normal file
29
qemu-2.7.0-usb-redirect-wakeup.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
diff -up qemu-2.7.0/hw/usb/redirect.c~ qemu-2.7.0/hw/usb/redirect.c
|
||||||
|
--- qemu-2.7.0/hw/usb/redirect.c~ 2016-09-02 17:34:20.000000000 +0200
|
||||||
|
+++ qemu-2.7.0/hw/usb/redirect.c 2016-10-10 09:18:35.319562664 +0200
|
||||||
|
@@ -2036,18 +2036,22 @@ static void usbredir_interrupt_packet(vo
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ep & USB_DIR_IN) {
|
||||||
|
+ bool q_was_empty;
|
||||||
|
+
|
||||||
|
if (dev->endpoint[EP2I(ep)].interrupt_started == 0) {
|
||||||
|
DPRINTF("received int packet while not started ep %02X\n", ep);
|
||||||
|
free(data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (QTAILQ_EMPTY(&dev->endpoint[EP2I(ep)].bufpq)) {
|
||||||
|
- usb_wakeup(usb_ep_get(&dev->dev, USB_TOKEN_IN, ep & 0x0f), 0);
|
||||||
|
- }
|
||||||
|
+ q_was_empty = QTAILQ_EMPTY(&dev->endpoint[EP2I(ep)].bufpq);
|
||||||
|
|
||||||
|
/* bufp_alloc also adds the packet to the ep queue */
|
||||||
|
bufp_alloc(dev, data, data_len, interrupt_packet->status, ep, data);
|
||||||
|
+
|
||||||
|
+ if (q_was_empty) {
|
||||||
|
+ usb_wakeup(usb_ep_get(&dev->dev, USB_TOKEN_IN, ep & 0x0f), 0);
|
||||||
|
+ }
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* We report output interrupt packets as completed directly upon
|
@ -68,7 +68,7 @@
|
|||||||
Summary: QEMU is a FAST! processor emulator
|
Summary: QEMU is a FAST! processor emulator
|
||||||
Name: qemu
|
Name: qemu
|
||||||
Version: 2.7.0
|
Version: 2.7.0
|
||||||
Release: 2%{?rcrel}%{?dist}
|
Release: 3%{?rcrel}%{?dist}
|
||||||
Epoch: 2
|
Epoch: 2
|
||||||
License: GPLv2+ and LGPLv2+ and BSD
|
License: GPLv2+ and LGPLv2+ and BSD
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
@ -100,6 +100,8 @@ Source20: kvm.conf
|
|||||||
# /etc/sysctl.d/50-kvm-s390x.conf
|
# /etc/sysctl.d/50-kvm-s390x.conf
|
||||||
Source21: 50-kvm-s390x.conf
|
Source21: 50-kvm-s390x.conf
|
||||||
|
|
||||||
|
Patch1: qemu-2.7.0-usb-redirect-wakeup.patch
|
||||||
|
|
||||||
# documentation deps
|
# documentation deps
|
||||||
BuildRequires: texi2html
|
BuildRequires: texi2html
|
||||||
BuildRequires: texinfo
|
BuildRequires: texinfo
|
||||||
@ -1563,6 +1565,10 @@ getent passwd qemu >/dev/null || \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Oct 10 2016 Hans de Goede <hdegoede@redhat.com> - 2:2.7.0-3
|
||||||
|
- Fix interrupt endpoints not working with network/spice USB redirection
|
||||||
|
on guest with an emulated xhci controller (rhbz#1382331)
|
||||||
|
|
||||||
* Tue Sep 20 2016 Michal Toman <mtoman@fedoraproject.org> - 2:2.7.0-2
|
* Tue Sep 20 2016 Michal Toman <mtoman@fedoraproject.org> - 2:2.7.0-2
|
||||||
- Fix build on MIPS
|
- Fix build on MIPS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user