Date: Mon, 31 Jul 2006 14:40:23 GMT From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@FreeBSD.org Subject: Re: usb/101096: USB WLAN occasionally causes kernel-panics during large downloads Message-ID: <200607311440.k6VEeNGI075957@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR usb/101096; it has been noted by GNATS. From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Cc: "Pascal G. Hofstee" <caelian@gmail.com>, freebsd-gnats-submit@freebsd.org Subject: Re: usb/101096: USB WLAN occasionally causes kernel-panics during large downloads Date: Mon, 31 Jul 2006 16:32:55 +0200 On Monday 31 July 2006 15:18, Pascal G. Hofstee wrote: > >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. > Hi, I think the new "if_ural" has this problem fixed, and a couple of others. Could you have tried the following: I recommend that you fetch all files from SVN. The SVN port is available from /usr/ports/devel/subversion . After Subversion is installed you run: svn --username anonsvn --password anonsvn checkout svn://svn.turbocat.net/i4b cd i4b/trunk/i4b/FreeBSD.usb make S=../src package make install Follow the "make help" instructions. It might be a good idea to build all kernel modules. Before you build the kernel copy the following files into "/usr/src/sys/dev/usb/": i4b/trunk/i4b/src/sys/dev/usb/if_ural.c i4b/trunk/i4b/src/sys/dev/usb/if_uralreg.h i4b/trunk/i4b/src/sys/dev/usb/if_uralvar.h NOTE: the kernel build will most likely fail, unless you are using FreeBSD-7-current. If it fails because there are missing product ID defines, then just remove these lines from the "ural_devs" structure in "if_ural.c". If it fails because "IEEE80211_FEXT_SWBMISS" is not defined, then change the failing code to something like this: #ifdef IEEE80211_FEXT_SWBMISS /* enable SW bmiss handling in sta mode */ ic->ic_flags_ext |= IEEE80211_FEXT_SWBMISS; #endif Else please report the error, if you cannot resolve it. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607311440.k6VEeNGI075957>