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