Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Jul 2006 13:18:50 GMT
From:      "Pascal G. Hofstee" <caelian@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   usb/101096: USB WLAN occasionally causes kernel-panics during large downloads
Message-ID:  <200607311318.k6VDIoGN001645@www.freebsd.org>
Resent-Message-ID: <200607311320.k6VDKD76066325@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607311318.k6VDIoGN001645>