cvs commit: src/sys/dev/usb ehci.c ehci_pci.c ehcivar.h

Juergen Lock nox at jelal.kn-bremen.de
Sun Jan 29 15:59:47 PST 2006


On Sun, Jan 29, 2006 at 06:08:49PM +0000, Ian Dowse wrote:
> In message <20060127003118.GA17649 at saturn.kn-bremen.de>, Juergen Lock writes:
> >
> >Here is what I use on RELENG_5_4:
> 
> Thanks - that's merged into RELENG_5 now. [...]

Hmm.  Now I just got the following panic with it, pipe->queue.stqh_first
shouldn't be NULL right?  (Maybe it already got a new command for the
same umass device while there still is an ehci_intrlist_timeout pending
for the last command and so the new one interferes?)

bash 10.3# kgdb kernel.debug /var/crash/vmcore.10
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".
#0  doadump () at pcpu.h:159
159		__asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) bt
#0  doadump () at pcpu.h:159
#1  0xc05e27aa in boot (howto=260)
    at /usr/home/nox/src54/usr/src/sys/kern/kern_shutdown.c:410
#2  0xc05e2a70 in panic (fmt=0xc07b08f4 "%s")
    at /usr/home/nox/src54/usr/src/sys/kern/kern_shutdown.c:566
#3  0xc0771cac in trap_fatal (frame=0xd420cbfc, eva=76)
    at /usr/home/nox/src54/usr/src/sys/i386/i386/trap.c:817
#4  0xc0771a07 in trap_pfault (frame=0xd420cbfc, usermode=0, eva=76)
    at /usr/home/nox/src54/usr/src/sys/i386/i386/trap.c:735
#5  0xc0771605 in trap (frame=
      {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = 0, tf_esi = -1030067328, tf_ebp = -736048040, tf_isp = -736048088, tf_ebx = -1045761280, tf_edx = 0, tf_ecx = 0, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1067954307, tf_cs = 8, tf_eflags = 66118, tf_esp = 0, tf_ss = 0})
    at /usr/home/nox/src54/usr/src/sys/i386/i386/trap.c:425
#6  0xc076411a in calltrap ()
    at /usr/home/nox/src54/usr/src/sys/i386/i386/exception.s:140
#7  0x00000018 in ?? ()
#8  0x00000010 in ?? ()
#9  0x00000010 in ?? ()
#10 0x00000000 in ?? ()
#11 0xc29a6b80 in ?? ()
#12 0xd420cc58 in ?? ()
---Type <return> to continue, or q <return> to quit---
#13 0xd420cc28 in ?? ()
#14 0xc1aaf300 in ?? ()
#15 0x00000000 in ?? ()
#16 0x00000000 in ?? ()
#17 0x00000000 in ?? ()
#18 0x0000000c in ?? ()
#19 0x00000000 in ?? ()
#20 0xc0584f7d in usb_transfer_complete (xfer=0xc1aaf300)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/usbdi.c:833
#21 0xc056d9b0 in ehci_idone (ex=0xc1aaf300)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/ehci.c:877
#22 0xc056d887 in ehci_check_intr (sc=0xc1a3f800, ex=0xc1aaf300)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/ehci.c:762
#23 0xc056d7bd in ehci_softintr (v=0xc1a3f800)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/ehci.c:696
#24 0xc0582281 in usb_schedsoftintr (bus=0x0)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/usb.c:870
#25 0xc056f833 in ehci_intrlist_timeout (arg=0xc1a3f800)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/ehci.c:2731
#26 0xc05ee626 in softclock (dummy=0x0)
    at /usr/home/nox/src54/usr/src/sys/kern/kern_timeout.c:279
#27 0xc05ceac5 in ithread_loop (arg=0xc197d500)
    at /usr/home/nox/src54/usr/src/sys/kern/kern_intr.c:547
---Type <return> to continue, or q <return> to quit---
#28 0xc05cdd58 in fork_exit (callout=0xc05ce974 <ithread_loop>, 
    arg=0xc197d500, frame=0xd420cd48)
    at /usr/home/nox/src54/usr/src/sys/kern/kern_fork.c:791
#29 0xc076417c in fork_trampoline ()
    at /usr/home/nox/src54/usr/src/sys/i386/i386/exception.s:209
(kgdb) fr 20
#20 0xc0584f7d in usb_transfer_complete (xfer=0xc1aaf300)
    at /usr/home/nox/src54/usr/src/sys/dev/usb/usbdi.c:833
833			SIMPLEQ_REMOVE_HEAD(&pipe->queue, next);
(kgdb) p *pipe
$1 = {iface = 0xc2e126a0, device = 0xc2881680, endpoint = 0xc2c8a940, 
  refcnt = 1, running = 1 '\001', aborting = 0 '\0', queue = {
    stqh_first = 0x0, stqh_last = 0xc29a6b94}, next = {le_next = 0x0, 
    le_prev = 0xc262381c}, intrxfer = 0x0, repeat = 0 '\0', interval = -1, 
  methods = 0xc081d4bc}
(kgdb) p *pipe->queue.stqh_last
$2 = (struct usbd_xfer *) 0x0
(kgdb) q


More information about the freebsd-usb mailing list