qemu/hw/usb
Hans de Goede 3905097ea8 uhci: Always mark a queue valid when we encounter it
Before this patch we would not mark a queue valid when its head was a
non-active td. This causes us to misbehave in the following scenario:

1) queue with multiple input transfers queued
2) We hit some latency issue, causing qemu to get behind processing frames
3) When qemu gets to run again, it notices the first transfer ends short,
   marking the head td non-active
4) It now processes 32+ frames in a row without giving the guest a chance
   to run since it is behind
5) valid is decreased to 0, causing the queue to get cancelled also cancelling
   already queued up further input transfers
6) guest gets to run, notices the inactive td, cleanups up further tds
   from the short transfer, and lets the queue continue at the first td of
   the next input transfer
7) we re-start the queue, issuing the second input transfer for the *second*
   time, and any data read by the first time we issued it has been lost

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-10-25 09:08:12 +02:00
..
bus.c usb: Add USB_RET_ADD_TO_QUEUE packet result code 2012-10-25 09:08:09 +02:00
core.c usb: Enforce iso endpoints never returing USB_RET_ASYNC 2012-10-25 09:08:10 +02:00
desc.c usb3: bos decriptor 2012-09-11 07:43:01 +02:00
desc.h usb3: bos decriptor 2012-09-11 07:43:01 +02:00
dev-audio.c usb-audio: fix usb version 2012-09-11 07:43:00 +02:00
dev-bluetooth.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-hid.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-hub.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-network.c net: fix usbnet_receive() packet drops 2012-09-14 08:40:32 +01:00
dev-serial.c usb-serial: only expose device in guest when the chardev is open 2012-10-22 13:26:42 -05:00
dev-smartcard-reader.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
dev-storage.c usb-storage: usb3 support 2012-09-11 07:43:01 +02:00
dev-uas.c cleanup useless return sentence 2012-10-05 15:10:21 +02:00
dev-wacom.c Allow machines to configure the QEMU_VERSION that's exposed via hardware 2012-06-19 13:36:56 -05:00
hcd-ehci.c usb: Enforce iso endpoints never returing USB_RET_ASYNC 2012-10-25 09:08:10 +02:00
hcd-musb.c usb: Add an int_req flag to USBPacket 2012-10-25 09:08:10 +02:00
hcd-ohci.c usb: Add an int_req flag to USBPacket 2012-10-25 09:08:10 +02:00
hcd-uhci.c uhci: Always mark a queue valid when we encounter it 2012-10-25 09:08:12 +02:00
hcd-xhci.c usb: Add an int_req flag to USBPacket 2012-10-25 09:08:10 +02:00
host-bsd.c
host-linux.c usb: Move short-not-ok handling to the core 2012-10-25 09:08:10 +02:00
host-stub.c
libhw.c usb: Fix usb_packet_map() in the presence of IOMMUs 2012-09-26 09:24:42 +02:00
Makefile.objs Remove libhw 2012-10-05 16:07:49 -05:00
redirect.c usb: Move short-not-ok handling to the core 2012-10-25 09:08:10 +02:00