* Re: [Qemu-devel] New assertion failed for USB
2012-03-07 11:30 ` Gerd Hoffmann
@ 2012-03-07 12:06 ` Erik Rull
0 siblings, 0 replies; 3+ messages in thread
From: Erik Rull @ 2012-03-07 12:06 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: qemu-devel@nongnu.org
[-- Attachment #1: Type: text/plain, Size: 1381 bytes --]
On March 7, 2012 at 12:30 PM Gerd Hoffmann <kraxel@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
[-- Attachment #2: usb-trace-assert.txt --]
[-- Type: text/plain, Size: 11069 bytes --]
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
^ permalink raw reply [flat|nested] 3+ messages in thread