]> git.proxmox.com Git - qemu.git/commit
ehci: Don't process too much frames in 1 timer tick (v2)
authorHans de Goede <hdegoede@redhat.com>
Mon, 10 Sep 2012 10:44:11 +0000 (12:44 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 12 Oct 2012 02:44:16 +0000 (21:44 -0500)
commit349b4e90707f5cefd199c9573fe34540a6aec327
tree76447f5a65a8863b70dbfaee0ca98ff848cdc0cd
parent29ecaa26a83753e67bc8ba7cacf08d3948e868af
ehci: Don't process too much frames in 1 timer tick (v2)

The Linux ehci isoc scheduling code fills the entire schedule ahead of
time minus 80 frames. If we make a large jump in where we are in the
schedule, ie 40 frames, then the scheduler all of a sudden will only have
40 frames left to work in, causing it to fail packet submissions
with error -27 (-EFBIG).

Changes in v2:
-Don't hardcode a maximum number of frames to process in one tick, instead:
 -Process a minimum number of frames to ensure we do eventually catch up
 -Stop (after the minimum number) when the guest has requested an irq

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit 8f74ed1e43263293301031a10e440549bab19a6e)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/usb/hcd-ehci.c