usb-ehci: itd handling fixes.
commite654887f3880fb0f6d4d40d15d2977de245a6440
authorGerd Hoffmann <kraxel@redhat.com>
Mon, 30 May 2011 14:09:08 +0000 (30 16:09 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 14 Jun 2011 10:56:49 +0000 (14 12:56 +0200)
tree05485741df96fd1370219beeade6ad39a41d2bb7
parent69bf405b50ae18cdbbb7b8bf08ab1f275d4e0d75
usb-ehci: itd handling fixes.

This patch fixes a bunch of issues in the itd descriptor handling.
Most important fix is to handle transfers which cross page borders
correctly by looking up the address of the next page.  Luckily the
linux uses physically contigous memory so the data used to hits the
correct location even with this bug instead of corrupting guest
memory.  Also the transfer length updates for outgoing transfers wasn't
correct.

While being at it DPRINTFs have been replaced by tracepoints.

The isoch_pause logic has been disabled.  Not clear to me which propose
this serves and I think it is incorrect too as we just skip processing
itds.  Even when no xfer happens we have to clear the active bit.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb-ehci.c
trace-events