]> git.proxmox.com Git - qemu.git/commit
ehci: Fixup q->qtdaddr after cancelling an already completed packet
authorHans de Goede <hdegoede@redhat.com>
Wed, 14 Nov 2012 16:21:37 +0000 (17:21 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 16 Nov 2012 10:27:32 +0000 (11:27 +0100)
commitff80ce599e0465cc6109a38bd3a8ca1890e88891
tree536155f69c0af748f9e664104e044b068cad76bf
parent30d68cf6e156b97fc462e18f38ce83f44702cd7f
ehci: Fixup q->qtdaddr after cancelling an already completed packet

This avoids the q->qtdaddr == p->qtdaddr asserts we have triggering, when
a queue contains multiple completed packages when we cancel the queue.

I triggered this with windows7 + async interrupt endpoint handling (*)
+ not detecting circles in ehci_fill_queue() properly, which makes the qtd
validation in ehci_fill_queue fail, causing cancellation of the queue on every
mouse event ...

*) Which is not going upstream as it will cause loss of interrupt events on
migration.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-ehci.c