qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Erik Rull <erik.rull@rdsoftware.de>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] New assertion failed for USB
Date: Wed, 7 Mar 2012 13:06:30 +0100 (CET)	[thread overview]
Message-ID: <24086152.37024.1331121990645.JavaMail.open-xchange@email.1und1.de> (raw)
In-Reply-To: <4F5746C3.5040104@redhat.com>

[-- 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

      reply	other threads:[~2012-03-07 12:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-07  9:46 [Qemu-devel] New assertion failed for USB Erik Rull
2012-03-07 11:30 ` Gerd Hoffmann
2012-03-07 12:06   ` Erik Rull [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=24086152.37024.1331121990645.JavaMail.open-xchange@email.1und1.de \
    --to=erik.rull@rdsoftware.de \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).