Re: [PATCH] hw/usb: record async control completion for parameter transfers
Marc-André Lureau <[email protected]> Tue, 30 Jun 2026 18:14:39 +0400
| Newsgroups | org.nongnu.qemu-trivial,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <CAJ+F1CLq=FJhE+tBgySzVCfjDkEExWv14Pe_ib4FKY22Gm=4dQ@mail.gmail.com> |
On Fri, Jun 26, 2026 at 4:05 PM Ziyi Fu <[email protected]> wrote: > > From: Ziyi Fu <[email protected]> > > Record the completion side of parameter-based control transfers when they > complete asynchronously. This lets pcap captures include descriptor > response data for requests such as GET_DESCRIPTOR from usb-host devices. > > The synchronous path already recorded the completion, but the async > SETUP_STATE_PARAM path was missing it. > > Signed-off-by: Ziyi Fu <[email protected]> Reviewed-by: Marc-André Lureau <[email protected]> > --- > Tested with a usb-host HID keyboard on qemu-xhci. Before this change, the > generated pcap contained GET_DESCRIPTOR submissions but not the corresponding > completion payloads. After this change, the pcap contains the descriptor > payloads and Wireshark can associate endpoint 0x81 with the HID interface. > > hw/usb/core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/usb/core.c b/hw/usb/core.c > index 9572a870cc..d71204c5c8 100644 > --- a/hw/usb/core.c > +++ b/hw/usb/core.c > @@ -345,6 +345,7 @@ void usb_generic_async_ctrl_complete(USBDevice *s, USBPacket *p) > p->actual_length = 0; > usb_packet_copy(p, s->data_buf, s->setup_len); > } > + usb_pcap_ctrl(p, false); > break; > > default: > -- > 2.51.2 > -- Marc-André Lureau