看板 DFBSD_bugs 關於我們 聯絡資訊
--Apple-Mail-11--1032399140 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii This is a continuation of issue 1785: = http://bugs.dragonflybsd.org/issue1785 I'm now running with BUS_DMA_NOWAIT as Joe Talbott told me. See attached = patch. My problem right now is when I fool around with wpa_supplicant. On a = second use it panics.=20 zoidberg# ifconfig wlan0 create wlandev ral0 up ral0: need multicast update callback zoidberg# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf=20 Trying to associate with 00:1d:7e:f0:fd:1f (SSID=3D'moh' freq=3D2422 = MHz) Associated with 00:1d:7e:f0:fd:1f WPA: Key negotiation completed with 00:1d:7e:f0:fd:1f [PTK=3DCCMP = GTK=3DCCMP] CTRL-EVENT-CONNECTED - Connection to 00:1d:7e:f0:fd:1f completed (auth) = [id=3D0 id_str=3D] ^C CTRL-EVENT-TERMINATING - signal 2 received ioctl[SIOCS80211, op 20, len 7]: Can't assign requested address ioctl[SIOCS80211, op 26, arg 0x0]: Operation not supported Failed to disable WPA in the driver. ioctl[SIOCS80211, op 26, arg 0x0]: Operation not supported ELOOP: remaining socket: sock=3D4 eloop_data=3D0x283c0080 = user_data=3D0x28400070 handler=3D0x806518b zoidberg# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf *panic* Same if I set it up in rc.conf and do a 'rcrestart netif' The panic looks like this: Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode fault virtual address =3D 0 fault code =3D supervisor read, page not present instruction pointer =3D 0x8:0xc029fcfc stack pointer =3D 0x10:0xd7c78cb8 frame pointer =3D 0x10:0xd7c78d08 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, def32 1, gran 1 processor eflags =3D interrupt enabled, resume, IOPL =3D 0 current process =3D Idle current thread =3D pri 60 (CRIT) kernel: type 12 trap, code=3D0 panic: from debugger Fatal trap 3: breakpoint instruction fault while in kernel mode instruction pointer =3D 0x8:0xc05517f8 stack pointer =3D 0x10:0xd7c78ac8 frame pointer =3D 0x10:0xd7c78ad0 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, def32 1, gran 1 processor eflags =3D interrupt enabled, IOPL =3D 0 current process =3D Idle current thread =3D pri 92 (CRIT) panic: from debugger Uptime: 3m49s Physical memory: 2038 MB Dumping 159 MB: 144 128 112 96 80 64 48 32 16 Reading symbols from /boot/modules/vesa.ko...done. Loaded symbols for /boot/modules/vesa.ko Reading symbols from /boot/modules/snd_emu10k1.ko...done. Loaded symbols for /boot/modules/snd_emu10k1.ko Reading symbols from /boot/modules/sound.ko...done. Loaded symbols for /boot/modules/sound.ko Reading symbols from /boot/modules/dsched_fq.ko...done. Loaded symbols for /boot/modules/dsched_fq.ko Reading symbols from /boot/modules/acpi.ko...done. Loaded symbols for /boot/modules/acpi.ko Reading symbols from /boot/modules/ehci.ko...done. Loaded symbols for /boot/modules/ehci.ko _get_mycpu (di=3D0xc06d8280) at ./machine/thread.h:83 83 __asm ("movl %%fs:globaldata,%0" : "=3Dr" (gd) : = "m"(__mycpu__dummy)); (kgdb) bt #0 _get_mycpu (di=3D0xc06d8280) at ./machine/thread.h:83 #1 md_dumpsys (di=3D0xc06d8280) at = /usr/src/sys/platform/pc32/i386/dump_machdep.c:263 #2 0xc031a259 in dumpsys () at /usr/src/sys/kern/kern_shutdown.c:839 #3 0xc031a7d4 in boot (howto=3D260) at = /usr/src/sys/kern/kern_shutdown.c:388 #4 0xc031a8fa in panic (fmt=3D0xc05ae872 "from debugger") at = /usr/src/sys/kern/kern_shutdown.c:745 #5 0xc0178965 in db_panic (addr=3D-1070990084, have_addr=3D0, count=3D-1,= modif=3D0xd7c78b30 "") at /usr/src/sys/ddb/db_command.c:448 #6 0xc0178fda in db_command () at /usr/src/sys/ddb/db_command.c:344 #7 db_command_loop () at /usr/src/sys/ddb/db_command.c:470 #8 0xc017b5e8 in db_trap (type=3D12, code=3D0) at = /usr/src/sys/ddb/db_trap.c:71 #9 0xc0551964 in kdb_trap (type=3D12, code=3D0, regs=3D0xd7c78c70) at = /usr/src/sys/platform/pc32/i386/db_interface.c:152 #10 0xc05637a0 in trap_fatal (frame=3D0xd7c78c70, eva=3D<value optimized = out>) at /usr/src/sys/platform/pc32/i386/trap.c:1120 #11 0xc0563902 in trap_pfault (frame=3D0xd7c78c70, usermode=3D0, eva=3D0) = at /usr/src/sys/platform/pc32/i386/trap.c:1026 #12 0xc0563dd4 in trap (frame=3D0xd7c78c70) at = /usr/src/sys/platform/pc32/i386/trap.c:713 #13 0xc0552d37 in calltrap () at = /usr/src/sys/platform/pc32/i386/exception.s:785 #14 0xc029fcfc in rt2661_tx_intr (arg=3D0xd7bfc748) at = /usr/src/sys/dev/netif/ral/rt2661.c:902 #15 rt2661_intr (arg=3D0xd7bfc748) at = /usr/src/sys/dev/netif/ral/rt2661.c:1204 #16 0xc03251db in lwkt_serialize_handler_call (s=3D0xc48e95e4, = func=3D0xc029f765 <rt2661_intr>, arg=3D0xd7bfc748, frame=3D0x0) at = /usr/src/sys/kern/lwkt_serialize.c:228 #17 0xc02fb49e in ithread_handler (arg=3D0xb) at = /usr/src/sys/kern/kern_intr.c:814 #18 0xc0322b2f in lwkt_deschedule_self (td=3DCannot access memory at = address 0x8) at /usr/src/sys/kern/lwkt_thread.c:250 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Max --Apple-Mail-11--1032399140 Content-Disposition: attachment; filename=rt2661.c.diff Content-Type: application/octet-stream; name="rt2661.c.diff" Content-Transfer-Encoding: 7bit diff --git a/sys/dev/netif/ral/rt2661.c b/sys/dev/netif/ral/rt2661.c index b8bd68b..7a574e7 100644 --- a/sys/dev/netif/ral/rt2661.c +++ b/sys/dev/netif/ral/rt2661.c @@ -1335,7 +1335,7 @@ rt2661_tx_mgt(struct rt2661_softc *sc, struct mbuf *m0, } error = bus_dmamap_load_mbuf_segment(sc->mgtq.data_dmat, data->map, m0, - segs, 1, &nsegs, 0); + segs, 1, &nsegs, BUS_DMA_NOWAIT); if (error != 0) { device_printf(sc->sc_dev, "could not map mbuf (error %d)\n", error); @@ -1436,7 +1436,7 @@ rt2661_sendprot(struct rt2661_softc *sc, int ac, desc = &txq->desc[txq->cur]; error = bus_dmamap_load_mbuf_segment(txq->data_dmat, data->map, mprot, segs, - 1, &nsegs, 0); + 1, &nsegs, BUS_DMA_NOWAIT); if (error != 0) { device_printf(sc->sc_dev, "could not map mbuf (error %d)\n", error); @@ -1534,7 +1534,7 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0, desc = &txq->desc[txq->cur]; error = bus_dmamap_load_mbuf_segment(txq->data_dmat, data->map, m0, segs, - 1, &nsegs, 0); + 1, &nsegs, BUS_DMA_NOWAIT); if (error != 0 && error != EFBIG) { device_printf(sc->sc_dev, "could not map mbuf (error %d)\n", error); @@ -1552,7 +1552,7 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0, m0 = mnew; error = bus_dmamap_load_mbuf_segment(txq->data_dmat, data->map, m0, - segs, 1, &nsegs, 0); + segs, 1, &nsegs, BUS_DMA_NOWAIT); if (error != 0) { device_printf(sc->sc_dev, "could not map mbuf (error %d)\n", error); --Apple-Mail-11--1032399140--