device rue causes kernel panic

Bert JW Regeer xistence at
Sun Jul 8 00:30:15 UTC 2007


I have a USB 10/100 FastEthernet device, that is identified as a  
RealTek device. On 6.2-RELEASE it works without any issues, and some  
older versions of CURRENT it worked perfectly as well. I csup'ed to  
CURRENT today (2007-07-07 at 16:30 MST), rebuild my kernel and it  
failed, so I grabbed the hard drive, made a copy into a VMWare image,  
recompiled the same CURRENT with debugging enabled, and retrieved the  
following backtrace from kgdb from a secondary VMWare running FreeBSD  
6.2-RELEASE with kgdb:

(kgdb) bt
#0  kdb_enter (msg=0xc0a90fed "panic") at /usr/src/sys/kern/ 
#1  0xc074b9b4 in panic (fmt=0xc0a94933 "Trying sleep, but thread  
marked as sleeping prohibited")
     at /usr/src/sys/kern/kern_shutdown.c:547
#2  0xc077a912 in sleepq_add (wchan=0xc2322c00, lock=0x0,  
wmesg=0xc0a85dc8 "usbsyn", flags=0, queue=0)
     at /usr/src/sys/kern/subr_sleepqueue.c:289
#3  0xc0753d33 in _sleep (ident=0xc2322c00, lock=Variable "lock" is  
not available.
) at /usr/src/sys/kern/kern_synch.c:201
#4  0xc06cc498 in usbd_transfer (xfer=0xc2322c00) at /usr/src/sys/dev/ 
#5  0xc06cc5e6 in usbd_sync_transfer (xfer=0xc2322c00) at /usr/src/ 
#6  0xc06cc678 in usbd_do_request_flags_pipe (dev=0xc2275300,  
pipe=0xc2275100, req=0xcbd46bb8, data=0xcbd46bd3, flags=Variable  
"flags" is not available.
     at /usr/src/sys/dev/usb/usbdi.c:1098
#7  0xc06cc7cc in usbd_do_request_flags (dev=0xc2275300,  
req=0xcbd46bb8, data=0xcbd46bd3, flags=Variable "flags" is not  
     at /usr/src/sys/dev/usb/usbdi.c:1068
#8  0xc06cc807 in usbd_do_request (dev=0xc2275300, req=0xcbd46bb8,  
data=0xcbd46bd3) at /usr/src/sys/dev/usb/usbdi.c:1060
#9  0xc06ae924 in rue_read_mem (sc=0xc2264d00, addr=Variable "addr"  
is not available.
) at /usr/src/sys/dev/usb/if_rue.c:227
#10 0xc06ae9cc in rue_csr_read_1 (sc=Variable "sc" is not available.
) at /usr/src/sys/dev/usb/if_rue.c:276
#11 0xc06aea47 in rue_miibus_readreg (dev=0xc2275080, phy=0, reg=311)  
at /usr/src/sys/dev/usb/if_rue.c:376
#12 0xc05f01eb in miibus_readreg (dev=0xc2274d00, phy=0, reg=311) at  
#13 0xc05f5b6e in ruephy_service (sc=0xc2278440, mii=0xc2278d00,  
cmd=1) at miibus_if.h:26
#14 0xc05efc14 in mii_tick (mii=0xc2278d00) at /usr/src/sys/dev/mii/ 
#15 0xc06aef53 in rue_tick (xsc=0xc2264d00) at /usr/src/sys/dev/usb/ 
#16 0xc075d229 in softclock (dummy=0x0) at /usr/src/sys/kern/ 
#17 0xc0730905 in ithread_loop (arg=0xc21152b0) at /usr/src/sys/kern/ 
#18 0xc072dd88 in fork_exit (callout=0xc0730750 <ithread_loop>,  
arg=0xc21152b0, frame=0xcbd46d38)
     at /usr/src/sys/kern/kern_fork.c:797
#19 0xc09e0820 in fork_trampoline () at /usr/src/sys/i386/i386/ 

Steps to reproduce:

1. Plug in a rue device
2. plug in a cable so that it's status is active
3. ifconfig rue0 up
4. Wait for the kernel to panic about a second or so later

If there is anything else you guys need me to do, please let me know  
and I will see what I can do.

Bert JW Regeer
p.s. I am not on the current at mailling list, please CC all  
replies to me.

More information about the freebsd-usb mailing list