From: Ziyi Fu <ziyi.fu@cyberus-technology.de>
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 <ziyi.fu@cyberus-technology.de>
---
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.49.1