From: Lonnie Mendez <lmendez19@austin.rr.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [usb][patch] anomaly with windows guests queuing an extra TD
Date: Sun, 16 Apr 2006 08:48:06 -0500 [thread overview]
Message-ID: <44424B16.1040300@austin.rr.com> (raw)
Hello list. I've noticed something odd going on with Windows guests
in that they will queue up and extra IN TD on a setup packet having a 32
byte data stage. So far I've seen this happen twice. Here is one
occurance:
frame 41: pid=SETUP addr=0x02 ep=0 len=8
data_out= 80 06 00 02 00 00 ff 00
ret=32
frame 42: pid=IN addr=0x02 ep=0 len=8
ret=8 data_in= 09 02 20 00 01 01 00 c0
frame 43: pid=IN addr=0x02 ep=0 len=8
ret=8 data_in= 01 09 04 00 00 02 00 00
frame 44: pid=IN addr=0x02 ep=0 len=8
ret=8 data_in= 00 00 07 05 81 03 08 00
frame 45: pid=IN addr=0x02 ep=0 len=8
ret=8 data_in= 0a 07 05 02 03 08 00 0a
frame 46: pid=IN addr=0x02 ep=0 len=8
ret=-3
A test case device that allows anyone to see the bug in action is
linked here:
http://gnome.dnsalias.net/patches/qemu-x10dev-bugged.diff (usb_add mysdev)
Here is a kind of workaround for this linked below. In the
setup_state SETUP_STATE_ACK if the packet has direction IN then it will
change setup state back to SETUP_STATE_ACK to wait for the further
queued OUT TD (ACK) and then return an appropriate value to the uhci
emulation so that it can handle the condition. At present it marks the
TD inactive and invalidates the frame. Setting an error condition
results in transfer failure and letting the frame continue without frame
invalidation results in the TD being queued several more times until the
hcd gives up and sends the OUT TD.
http://gnome.dnsalias.net/patches/qemu-usbquirk-wildtd.patch
next reply other threads:[~2006-04-16 13:48 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-16 13:48 Lonnie Mendez [this message]
2006-04-23 18:36 ` [Qemu-devel] [usb][patch] anomaly with windows guests queuing an extra TD Fabrice Bellard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44424B16.1040300@austin.rr.com \
--to=lmendez19@austin.rr.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).