usb/101096: USB WLAN occasionally causes kernel-panics during large
downloads
Pascal G. Hofstee
caelian at gmail.com
Mon Jul 31 13:20:18 UTC 2006
>Number: 101096
>Category: usb
>Synopsis: USB WLAN occasionally causes kernel-panics during large downloads
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: freebsd-usb
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jul 31 13:20:13 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Pascal G. Hofstee
>Release: FreeBSD/i386 6.1-RELEASE
>Organization:
>Environment:
FreeBSD chekov.ufp.fli4l 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sat Jul 29 19:29:11 CEST 2006 pascal at aragorn.alex:/usr/obj/usr/src/sys/CHEKOV i386
>Description:
DUring downloads of large documentrs over my USB WLAN interface (if_ural driver) the system occasionally breaks down because of kernel-panics.
Script started on Mon Jul 32 14:59:09 2006
[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".
Unread portion of the kernel message buffer:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x4
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc077be82
stack pointer = 0x28:0xcc1b1bb4
frame pointer = 0x28:0xcc1b1bd4
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 23 (irq10: pcm0 uhci0+)
trap number = 12
panic: page fault
Uptime: 1d1h7m46s
Dumping 255 MB (2 chunks)
chunk 0: 1MB (159 pages) ... ok
chunk 1: 255MB (65276 pages) 240 224 208 192 176 160 144 128 112 96 80 64 48 32 16
#0 doadump () at pcpu.h:165
165 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) bt full
#0 doadump () at pcpu.h:165
No locals.
#1 0xc06cdbd7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:402
first_buf_printf = 1
#2 0xc06cdf19 in panic (fmt=0xc097a0bb "%s")
at /usr/src/sys/kern/kern_shutdown.c:558
td = (struct thread *) 0xc253d300
bootopt = 260
newpanic = 0
ap = 0xc253d300 ""
buf = "page fault", '\0' <repeats 245 times>
#3 0xc092b73c in trap_fatal (frame=0xcc1b1b74, eva=0)
at /usr/src/sys/i386/i386/trap.c:836
code = 40
type = 12
ss = 40
esp = 0
softseg = {ssd_base = 0, ssd_limit = 1048575, ssd_type = 27,
ssd_dpl = 0, ssd_p = 1, ssd_xx = 0, ssd_xx1 = 0, ssd_def32 = 1,
ssd_gran = 1}
msg = 0x0
#4 0xc092b412 in trap_pfault (frame=0xcc1b1b74, usermode=0, eva=4)
at /usr/src/sys/i386/i386/trap.c:744
va = 0
vm = (struct vmspace *) 0x0
map = 0x1
rv = 1
ftype = 1 '\001'
td = (struct thread *) 0xc253d300
p = (struct proc *) 0xc260d000
#5 0xc092afad in trap (frame=
{tf_fs = -1066598392, tf_es = -1034747864, tf_ds = 40, tf_edi = -1033379840, tf_esi = 0, tf_ebp = -870638636, tf_isp = -870638688, tf_ebx = -1033376556, tf_edx = -1033606400, tf_ecx = -1033699328, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1065894270, tf_cs = 32, tf_eflags = 66182, tf_esp = -1033601280, tf_ss = -1033601248}) at /usr/src/sys/i386/i386/trap.c:434
td = (struct thread *) 0xc253d300
p = (struct proc *) 0xc260d000
sticks = 0
i = 0
ucode = 0
type = 12
code = 0
eva = 4
#6 0xc09174ba in calltrap () at /usr/src/sys/i386/i386/exception.s:139
No locals.
#7 0xc077be82 in ieee80211_free_node (ni=0x0)
at /usr/src/sys/net80211/ieee80211_node.c:1600
nt = (struct ieee80211_node_table *) 0xc267ecd4
__func__ = "ieee80211_free_node"
#8 0xc0638575 in ural_txeof (xfer=0xc2749b00, priv=0xc267ecd4,
status=USBD_NORMAL_COMPLETION) at /usr/src/sys/dev/usb/if_ural.c:887
data = (struct ural_tx_data *) 0xc267ecd4
sc = (struct ural_softc *) 0xc267e000
ifp = (struct ifnet *) 0xc269dc00
#9 0xc0655b83 in usb_transfer_complete (xfer=0xc2749b00)
at /usr/src/sys/dev/usb/usbdi.c:863
pipe = 0xc27c7700
dmap = (usb_dma_t *) 0xc2749b3c
sync = 0
erred = 0
repeat = 0
polling = 0
#10 0xc0644f25 in uhci_idone (ii=0x0) at /usr/src/sys/dev/usb/uhci.c:1499
xfer = 0xc2749b00
upipe = (struct uhci_pipe *) 0xc27c7700
std = (uhci_soft_td_t *) 0xc2646b00
status = 0
nstatus = 0
actlen = 120
#11 0xc0644dd8 in uhci_check_intr (sc=0xc2630000, ii=0xc2749b70)
at /usr/src/sys/dev/usb/uhci.c:1374
std = (uhci_soft_td_t *) 0xc2630000
lstd = (uhci_soft_td_t *) 0xc2646b00
status = 0
#12 0xc0644cef in uhci_softintr (v=0xc2630000)
at /usr/src/sys/dev/usb/uhci.c:1304
sc = (uhci_softc_t *) 0xc2630000
ii = (uhci_intr_info_t *) 0x0
nextii = (uhci_intr_info_t *) 0xc2721970
#13 0xc0652302 in usb_schedsoftintr (bus=0x0)
at /usr/src/sys/dev/usb/usb.c:871
No locals.
#14 0xc0644c9c in uhci_intr1 (sc=0xc2630000)
at /usr/src/sys/dev/usb/uhci.c:1274
status = 1
ack = 1
#15 0xc0644a8d in uhci_intr (arg=0xc2630000)
at /usr/src/sys/dev/usb/uhci.c:1189
sc = (uhci_softc_t *) 0xc2646b00
#16 0xc06b34c8 in ithread_execute_handlers (p=0xc260d000, ie=0xc2539800)
at /usr/src/sys/kern/kern_intr.c:684
ih = (struct intr_handler *) 0xc262e600
ihn = (struct intr_handler *) 0xc264a8c0
#17 0xc06b3636 in ithread_loop (arg=0xc263b570)
at /usr/src/sys/kern/kern_intr.c:767
intr_event = (struct intr_thread *) 0xc263b570
ie = (struct intr_event *) 0xc2539800
td = (struct thread *) 0xc253d300
p = (struct proc *) 0xc260d000
#18 0xc06b1f3f in fork_exit (callout=0xc06b35c0 <ithread_loop>, arg=0x0,
frame=0x0) at /usr/src/sys/kern/kern_fork.c:805
p = (struct proc *) 0xc260d000
td = (struct thread *) 0xc2646b00
#19 0xc091751c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:208
No locals.
(kgdb)
Script done on Mon Jul 31 14:59:41 2006
>How-To-Repeat:
Usually downloading a rather large document through USB WLAN interface triggers the crashes, e.g. diablo-jdk15, firefox etc.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-usb
mailing list