ral(4) problems.

Joe Talbott josepht at cstone.net
Mon Jul 26 11:32:41 PDT 2010


On Mon, Jul 26, 2010 at 05:48:47PM +0200, Max Herrg?rd wrote:
> 25 jul 2010 kl. 18.14 Joe Talbott wrote:
> > On Sun, Jul 25, 2010 at 04:59:55PM +0200, Max Herrg?rd wrote:
> >> (kgdb) bt
> >> #0  _get_mycpu (di=0xc06d8280) at ./machine/thread.h:83
> >> #1  md_dumpsys (di=0xc06d8280) 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=260) at /usr/src/sys/kern/kern_shutdown.c:388
> >> #4  0xc031a8fa in panic (fmt=0xc05ae872 "from debugger") at /usr/src/sys/kern/kern_shutdown.c:745
> >> #5  0xc0178965 in db_panic (addr=-1070990084, have_addr=0, count=-1, modif=0xd7c78b30 "") 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=12, code=0) at /usr/src/sys/ddb/db_trap.c:71
> >> #9  0xc0551964 in kdb_trap (type=12, code=0, regs=0xd7c78c70) at /usr/src/sys/platform/pc32/i386/db_interface.c:152
> >> #10 0xc05637a0 in trap_fatal (frame=0xd7c78c70, eva=<value optimized out>) at /usr/src/sys/platform/pc32/i386/trap.c:1120
> >> #11 0xc0563902 in trap_pfault (frame=0xd7c78c70, usermode=0, eva=0) at /usr/src/sys/platform/pc32/i386/trap.c:1026
> >> #12 0xc0563dd4 in trap (frame=0xd7c78c70) 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=0xd7bfc748) at /usr/src/sys/dev/netif/ral/rt2661.c:902
> >> #15 rt2661_intr (arg=0xd7bfc748) at /usr/src/sys/dev/netif/ral/rt2661.c:1204
> >> #16 0xc03251db in lwkt_serialize_handler_call (s=0xc48e95e4, func=0xc029f765 <rt2661_intr>, arg=0xd7bfc748, frame=0x0) at /usr/src/sys/kern/lwkt_serialize.c:228
> >> #17 0xc02fb49e in ithread_handler (arg=0xb) at /usr/src/sys/kern/kern_intr.c:814
> >> #18 0xc0322b2f in lwkt_deschedule_self (td=Cannot 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,
> > 
> > Can you upload your kernel image and core to leaf so I can take a
> > look?
> > 
> > Thanks,
> > Joe
> 
> Hi Joe,
> 
> It's uploaded to leaf~mh and called *.14.

Max,

Please try this patch for the first panic.  I'm still looking at the
second one.

Thanks,
Joe
diff --git a/sys/dev/netif/ral/rt2661.c b/sys/dev/netif/ral/rt2661.c
index b8bd68b..db80748 100644
--- a/sys/dev/netif/ral/rt2661.c
+++ b/sys/dev/netif/ral/rt2661.c
@@ -898,14 +898,15 @@ rt2661_tx_intr(struct rt2661_softc *sc)
 		data = &txq->data[txq->stat];
 		m = data->m;
 		data->m = NULL;
-		ni = data->ni;
-		data->ni = NULL;
-		vap = ni->ni_vap;
 
 		/* if no frame has been sent, ignore */
 		if (ni == NULL)
 			continue;
 
+		ni = data->ni;
+		data->ni = NULL;
+		vap = ni->ni_vap;
+
 		switch (RT2661_TX_RESULT(val)) {
 		case RT2661_TX_SUCCESS:
 			retrycnt = RT2661_TX_RETRYCNT(val);
@@ -1491,7 +1492,7 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0,
 	} else if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
 		rate = tp->ucastrate;
 	} else {
-		(void) ieee80211_ratectl_rate(ni, NULL, 0);
+		ieee80211_ratectl_rate(ni, NULL, 0);
 		rate = ni->ni_txrate;
 	}
 	rate &= IEEE80211_RATE_VAL;




More information about the Bugs mailing list