Date: Wed, 24 Jul 2013 10:39:32 +0800 From: XiaoQI Ge <ghw@7axu.com> To: Daan Vreeken <Daan@vitsch.nl> Cc: freebsd-arm@freebsd.org, freebsd-wireless@freebsd.org Subject: Re: My WLI-UC-GNM up crash Message-ID: <CAKrd9eXJH6VQPBTLCayat47Dch8BWmhz3gzYtcSv-6unHb8QMQ@mail.gmail.com> In-Reply-To: <CAKrd9eWsfgd9EZytBOrxBYyeTaNjPhFO6O5qv-K4ODf9bSDvVw@mail.gmail.com> References: <cakrd9exvuqeqz=3ntmh7k3e4_6fjw9jph_tpfchujhqhwwbzsg@mail.gmail.com> <1374573600-2351360719.d37ada5f86@bliksem.vehosting.nl> <CAKrd9eXHXmM5_ai0=kV4Sd8U3Fej8FkKp7XXcbppxeBVDHB3Pg@mail.gmail.com> <201307231220.52817.Daan@vitsch.nl> <CAKrd9eXPB2-cAySVSGm-BJHPU9L65fm6rynMpCnNQ-M_B9zMMw@mail.gmail.com> <CAKrd9eWsfgd9EZytBOrxBYyeTaNjPhFO6O5qv-K4ODf9bSDvVw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
How do I debug it? Can provide useful information login: root Jul 24 18:27:31 FreeBSD login: ROOT LOGIN (root) ON ttyu0 FreeBSD 10.0-CURRENT (BBB) #4 r253585M: Wed Jul 24 17:07:53 CST 2013 [root@FreeBSD.ttyu0] ~ # ifconfig wlan create wlandev run0 wlan0: Ethernet address: 10:6f:3f:2b:fd:6d wlan0 [root@FreeBSD.ttyu0] ~ # ifconfig wlan0 up run0: firmware RT2870 ver. 0.236 loaded Fatal kernel mode data abort: 'Alignment Fault 1' trapframe: 0xde9e4d5c FSR=00000801, FAR=c282ffbb, spsr=00000013 r0 =c2831000, r1 =c282ffbb, r2 =c2831210, r3 =0000096c r4 =c2831024, r5 =c2831000, r6 =c05d9362, r7 =c2829800 r8 =00000014, r9 =c08144d8, r10=80001cce, r11=de9e4e10 r12=0000002e, ssp=de9e4da8, slr=00000000, pc =c045c510 [ thread pid 0 tid 100053 ] Stopped at ieee80211_radiotap_chan_change+0x90: strh r3, [r1] db> These two places modified: 2522 } 2523 2524 ant = run_maxrssi_chain(sc, rxwi); 2525 rssi = rxwi->rssi[ant]; 2526 nf = run_rssi2dbm(sc, rssi, ant); 2527 2528 m->m_pkthdr.rcvif = ifp; 2529 m->m_pkthdr.len = m->m_len = len; 2530 /* 2531 if (ni != NULL) { 2532 (void)ieee80211_input(ni, m, rssi, nf); 2533 ieee80211_free_node(ni); 2534 } else { 2535 (void)ieee80211_input_all(ic, m, rssi, nf); 2536 } 2537 */ 2538 /* 2539 * DAAN: fill-in tap header BEFORE calling ieee80211_input*() so the 2540 * user will see the actual data that belongs to THIS packet.. 2541 */ 2542 if (__predict_false(ieee80211_radiotap_active(ic))) { 2543 struct run_rx_radiotap_header *tap = &sc->sc_rxtap; 2544 2545 tap->wr_flags = 0; 2546 tap->wr_chan_freq = htole16(ic->ic_curchan->ic_freq); 2547 tap->wr_chan_flags = htole16(ic->ic_curchan->ic_flags); 2548 tap->wr_antsignal = rssi; 2549 tap->wr_antenna = ant; 2550 tap->wr_dbm_antsignal = run_rssi2dbm(sc, rssi, ant); 2551 tap->wr_rate = 2; /* in case it can't be found below */ 2552 phy = le16toh(rxwi->phy); 2553 switch (phy & RT2860_PHY_MODE) { 2554 case RT2860_PHY_CCK: 2555 switch ((phy & RT2860_PHY_MCS) & ~RT2860_PHY_SHPRE) { 2556 case 0: tap->wr_rate = 2; break; 2557 case 1: tap->wr_rate = 4; break; 2558 case 2: tap->wr_rate = 11; break; 2559 case 3: tap->wr_rate = 22; break; 2560 } 2561 if (phy & RT2860_PHY_SHPRE) 2562 tap->wr_flags |= IEEE80211_RADIOTAP_F_SHORTPRE; 2563 break; 2564 case RT2860_PHY_OFDM: 2565 switch (phy & RT2860_PHY_MCS) { 2566 case 0: tap->wr_rate = 12; break; 2567 case 1: tap->wr_rate = 18; break; 2568 case 2: tap->wr_rate = 24; break; 2569 case 3: tap->wr_rate = 36; break; 2570 case 4: tap->wr_rate = 48; break; 2571 case 5: tap->wr_rate = 72; break; 2572 case 6: tap->wr_rate = 96; break; 2573 case 7: tap->wr_rate = 108; break; 2574 } 2575 break; 2576 } 2577 } 2578 2579 if (ni != NULL) { 2580 (void)ieee80211_input(ni, m, rssi, nf); 2581 ieee80211_free_node(ni); 2582 } else { 2583 (void)ieee80211_input_all(ic, m, rssi, nf); 2584 } 2585 2586 } 2587 2588 static void Index: sys/vm/vm_map.c =================================================================== --- sys/vm/vm_map.c (revision 253514) +++ sys/vm/vm_map.c (working copy) @@ -239,8 +239,7 @@ vm_map_t map; map = (vm_map_t)mem; - map->nentries = 0; - map->size = 0; + memset(map, 0, sizeof(*map)); mtx_init(&map->system_mtx, "vm map (system)", NULL, MTX_DEF | MTX_DUPOK); sx_init(&map->lock, "vm map (user)"); return (0); -- Regards. By: XiaoQI Ge; PGP:8B09D5F7 WWW: https://www.7axu.com/ 2013/7/24 XiaoQI Ge <ghw@7axu.com>: > I manually make up, is compiling the kernel > -- > Regards. > By: XiaoQI Ge; PGP:8B09D5F7 > WWW: https://www.7axu.com/ > > > > 2013/7/24 XiaoQI Ge <ghw@7axu.com>: >> patch < /root/if_run_2013_01_19_radiotap_fix_only.diff appears to be invalid >> >> ] /usr/src/sys/dev/usb/wlan # patch < >> /root/if_run_2013_01_19_radiotap_fix_only.diff >> Hmm... Looks like a unified diff to me... >> The text leading up to this was: >> -------------------------- >> |--- if_run.c.fix1_vnet 2013-06-14 10:12:49.786774072 +0200 >> |+++ if_run.c.fix2_vnet_plus_radiotap 2013-06-14 10:15:34.890774314 +0200 >> -------------------------- >> File to patch: >> >> >> 2013/7/23 Daan Vreeken <Daan@vitsch.nl>: >>> cd /usr/src/sys/dev/usb/wlan >> >> >> >> -- >> Regards. >> By: XiaoQI Ge; PGP:8B09D5F7 >> WWW: https://www.7axu.com/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKrd9eXJH6VQPBTLCayat47Dch8BWmhz3gzYtcSv-6unHb8QMQ>