> diff --git a/hw/usb/core.c b/hw/usb/core.c
> index 0e02da7..eacda74 100644
> --- a/hw/usb/core.c
> +++ b/hw/usb/core.c
> @@ -407,7 +407,9 @@ void usb_packet_complete(USBDevice *dev, USBPacket *p)
> int ret;
>
> usb_packet_check_state(p, USB_PACKET_ASYNC);
> - assert(QTAILQ_FIRST(&ep->queue) == p);
> + if (QTAILQ_FIRST(&ep->queue) != p) {
> + trace_usb_assert(usb_bus_from_device(dev)->busnr, dev->port->path,
> p->ep->nr, p);
> + }
Can you also log QTAILQ_FIRST(&ep->queue) there?
usb_host_* & usb_packet_state_* tracepoints are good to have, usb_uhci_*
is not needed.
>From the trace it looks like the packets are completing in the same
order they have been submitted as they should, I'm puzzled why the
assert triggers ...
Can I also get a "lsusb -v" for the usb device in question?
cheers,
Gerd