On March 7, 2012 at 12:30 PM Gerd Hoffmann <kra...@redhat.com> wrote:
> On 03/07/12 10:46, Erik Rull wrote: > > Hi Gerd, > > > > there are new assertion failed when plugging in a USB security dongle at > > guest runtime. > > They occur on the current GIT master + your async patch. > > > > /home/erik/qemu/hw/usb.c:352 usb_packet_complete: Assertion > > '((&ep->queue)->tqh_first) == p' failed. > > I got this only once and I'm currently not able to reproduce that. > > Strange. > > > Next one is: > > Same security dongle (I tested two different hardware versions, both show > > the same behaviour): > > - They get detected at runtime (beside this one crash above) but it takes > > quite long > > - When being plugged in before guest startup I get the following assertion > > - this seems to happen in BIOS before the guest OS actually boots: > > /home/erik/qemu/hw/usb-uhci.c:967: uhci_fill_queue: Assertion 'ret == 2' > > failed. > > Might be related. In both cases the packet queue somehow isn't in the > state we expecting it to be. > > > If you need further information, just let me know how to produce it. > > Enable tracing for these events ... > > usb_packet_state_change > usb_host_req_* > usb_host_urb_* > > ... and try to reproduce. Hopefully that gives a clue. > > cheers, > Gerd Hi Gerd, thanks for the quick reply. File is attached. Best regards, Erik
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d50, state undef -> setup usb_host_req_control dev 2:22, req 0x5, value 1, index 0 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d50, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d70, state undef -> setup usb_host_req_control dev 2:22, req 0x8006, value 256, index 0 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 16, more 0 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d70, state setup -> async uhci_fill_queue: -- 12d usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 8, more 0 usb_host_req_complete dev 2:22, status 16 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d70, state async -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_host_req_control dev 2:22, req 0x8006, value 512, index 0 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 17, more 0 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> async uhci_fill_queue: -- 12d usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 9, more 0 usb_host_req_complete dev 2:22, status 17 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state async -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_host_req_control dev 2:22, req 0x8006, value 512, index 0 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 40, more 0 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> async uhci_fill_queue: -- 12d usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 32, more 0 usb_host_req_complete dev 2:22, status 40 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state async -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup usb_host_req_control dev 2:22, req 0x9, value 1, index 0 usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e13510, state undef -> setup usb_host_req_data dev 2:22, in 0, ep 2, size 31 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 31, more 0 usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e13510, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 31, more 0 usb_host_req_complete dev 2:22, status 31 usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e13510, state async -> complete usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state undef -> setup usb_host_req_data dev 2:22, in 1, ep 1, size 36 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 36, more 0 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 36, more 0 usb_host_req_complete dev 2:22, status 36 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state async -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state undef -> setup usb_host_req_data dev 2:22, in 1, ep 1, size 13 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 13, more 0 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 13, more 0 usb_host_req_complete dev 2:22, status 13 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state async -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e13550, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e13550, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e742f0, state undef -> setup usb_host_req_data dev 2:22, in 0, ep 2, size 31 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 31, more 0 usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e742f0, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 31, more 0 usb_host_req_complete dev 2:22, status 31 usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e742f0, state async -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state undef -> setup usb_host_req_data dev 2:22, in 1, ep 1, size 8 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 8, more 0 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 8, more 0 usb_host_req_complete dev 2:22, status 8 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state async -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state undef -> setup usb_host_req_data dev 2:22, in 1, ep 1, size 13 usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 13, more 0 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 13, more 0 usb_host_req_complete dev 2:22, status 13 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state async -> complete usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e74188, state undef -> setup usb_host_req_data dev 2:22, in 0, ep 2, size 31 usb_host_urb_submit dev 2:22, aurb 0xb7e741e8, length 31, more 0 usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e74188, state setup -> async usb_host_urb_complete dev 2:22, aurb 0xb7e741e8, status 0, length 31, more 0 usb_host_req_complete dev 2:22, status 31 usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e74188, state async -> complete usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e74188, state undef -> setup usb_host_req_data dev 2:22, in 1, ep 1, size 64 usb_host_urb_submit dev 2:22, aurb 0xb7e741e8, length 64, more 0 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e74188, state setup -> async uhci_fill_queue: -- 8169 usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e743b0, state undef -> setup usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e743b0, state setup -> queued usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3588, state undef -> setup usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3588, state setup -> queued usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3600, state undef -> setup usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3600, state setup -> queued qemu-system-x86_64: /home/erik/qemu/hw/usb-uhci.c:967: uhci_fill_queue: Assertion `ret == 2' failed. Aborted