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     [EMAIL PROTECTED]:/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
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to