panic in rt2860_drain_stats_fifo()

Jeremie Le Hen jlh at FreeBSD.org
Sun Jan 11 12:02:33 UTC 2015


Hi,

I've got hit by this panic numerous times over the last few months.
I've tried to debug it, but I couldn't figure out what the issue was.
It is not reproducible, sometimes the machine will work correctly for
weeks, sometimes it will happen within a few hours after a reboot.

See the attached file for the backtrace and some debugging information.

The issue is that "ni->ni_vap" is 0xdeadcode.  But
"ic->ic_node_alloc()" is only called from ieee80211_alloc_node() and
ieee80211_tmp_node() which both seem to initialize "ni_vap" correctly,
which means the bad value comes from higher in the stack but I
couldn't figure out where.
-- 
Jeremie Le Hen
jlh at FreeBSD.org
-------------- next part --------------
(kgdb) bt
#0  doadump (textdump=Unhandled dwarf expression opcode 0x93
) at pcpu.h:219
#1  0xffffffff80310d66 in db_fncall (dummy1=<value optimized out>, 
    dummy2=<value optimized out>, dummy3=<value optimized out>, 
    dummy4=<value optimized out>) at /usr/src-svn/sys/ddb/db_command.c:568
#2  0xffffffff80310a4c in db_command (cmd_table=0x0)
    at /usr/src-svn/sys/ddb/db_command.c:440
#3  0xffffffff803107b4 in db_command_loop ()
    at /usr/src-svn/sys/ddb/db_command.c:493
#4  0xffffffff803132f0 in db_trap (type=<value optimized out>, code=Unhandled dwarf expression opcode 0x93
)
    at /usr/src-svn/sys/ddb/db_main.c:251
#5  0xffffffff806f60ae in kdb_trap (type=Unhandled dwarf expression opcode 0x93
)
    at /usr/src-svn/sys/kern/subr_kdb.c:654
#6  0xffffffff80a31909 in trap_fatal (frame=0xfffffe00e50189b0, 
    eva=<value optimized out>) at /usr/src-svn/sys/amd64/amd64/trap.c:862
#7  0xffffffff80a315be in trap (frame=<value optimized out>)
    at /usr/src-svn/sys/amd64/amd64/trap.c:201
#8  0xffffffff80a11882 in calltrap ()
    at /usr/src-svn/sys/amd64/amd64/exception.S:235
#9  0xffffffff804afaeb in rt2860_drain_stats_fifo (sc=0xfffffe0000d56000)
    at /usr/src-svn/sys/dev/ral/rt2860.c:1128
#10 0xffffffff804af2a6 in rt2860_intr (arg=0xfffffe0000d56000)
    at /usr/src-svn/sys/dev/ral/rt2860.c:1435
#11 0xffffffff80683ab1 in intr_event_execute_handlers (
    p=<value optimized out>, ie=0xfffff80002ae2200)
    at /usr/src-svn/sys/kern/kern_intr.c:1241
#12 0xffffffff8068446c in ithread_loop (arg=0xfffff80002b2de20)
    at /usr/src-svn/sys/kern/kern_intr.c:1254
#13 0xffffffff80681454 in fork_exit (
    callout=0xffffffff806843c0 <ithread_loop>, arg=0xfffff80002b2de20, 
    frame=0xfffffe00e5018c00) at /usr/src-svn/sys/kern/kern_fork.c:996
#14 0xffffffff80a11dbe in fork_trampoline ()
    at /usr/src-svn/sys/amd64/amd64/exception.S:610
#15 0x0000000000000000 in ?? ()
Current language:  auto; currently minimal

(kgdb) frame 9
#9  0xffffffff804afaeb in rt2860_drain_stats_fifo (sc=0xfffffe0000d56000)
    at /usr/src-svn/sys/dev/ral/rt2860.c:1128
1128                            ieee80211_ratectl_tx_complete(ni->ni_vap, ni,

(kgdb) print *ni                                                      [60/1893]
$1 = {ni_vap = 0xdeadc0dedeadc0de, ni_ic = 0xdeadc0dedeadc0de, 
  ni_table = 0xdeadc0dedeadc0de, ni_list = {tqe_next = 0xdeadc0dedeadc0de, 
    tqe_prev = 0xdeadc0dedeadc0de}, ni_hash = {le_next = 0xdeadc0dedeadc0de, 
    le_prev = 0xdeadc0dedeadc0de}, ni_refcnt = 3735929054, 
  ni_scangen = 3735929054, ni_flags = 3735929054, ni_associd = 49374, 
  ni_vlan = 57005, ni_txpower = 49374, ni_authmode = 173 '���', 
  ni_ath_flags = 222 '���', ni_ath_defkeyix = 49374, 
  ni_txparms = 0xdeadc0dedeadc0de, ni_jointime = 3735929054, 
  ni_challenge = 0xdeadc0dedeadc0de, ni_ies = {
    wpa_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    rsn_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    wme_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    ath_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    htcap_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    htinfo_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
tdma_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    meshid_ie = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
spare = {0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
      0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
      0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
      0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>}, 
    data = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>, 
    len = -559038242}, ni_txseqs = {49374, 57005, 49374, 57005, 49374, 57005, 
    49374, 57005, 49374, 57005, 49374, 57005, 49374, 57005, 49374, 57005, 
    49374}, ni_rxseqs = {57005, 49374, 57005, 49374, 57005, 49374, 57005, 
    49374, 57005, 49374, 57005, 49374, 57005, 49374, 57005, 49374, 57005}, 
  ni_rxfragstamp = 3735929054, ni_rxfrag = {0xdeadc0dedeadc0de, 
    0xdeadc0dedeadc0de, 0xdeadc0dedeadc0de}, ni_ucastkey = {
    wk_keylen = 222 '���', wk_pad = 192 '���', wk_flags = 57005, 
    wk_keyix = 49374, wk_rxkeyix = 57005, 
    wk_key = "������������������������������������������������������������������������������������������������", wk_keyrsc = {
      16045693110842147038 <repeats 17 times>}, 
    wk_keytsc = 16045693110842147038, wk_cipher = 0xdeadc0dedeadc0de, 
    wk_private = 0xdeadc0dedeadc0de, wk_macaddr = "������������������"}, 
  ni_avgrssi = 3735929054, ni_noise = -34 '���', ni_mimo_rssi_ctl = {
    3735929054, 3735929054, 3735929054}, ni_mimo_rssi_ext = {3735929054, 
    3735929054, 3735929054}, ni_mimo_noise_ctl = "���������", 
  ni_mimo_noise_ext = "���������", ni_mimo_chains = 173 '���', ni_macaddr = "������������������", 
  ni_bssid = "������������������", ni_tstamp = {data = "������������������������", 
    tsf = 16045693110842147038}, ni_intval = 49374, ni_capinfo = 57005, 
  ni_esslen = 222 '���', ni_essid = "������������������������������������������������������������������������������������������������", 
  ni_rates = {rs_nrates = 192 '���', rs_rates = "���������������������������������������������"}, 
  ni_chan = 0xdeadc0dedeadc0de, ni_fhdwell = 49374, ni_fhindex = 173 '���', 
  ni_erp = 49374, ni_timoff = 57005, ni_dtim_period = 222 '���', 
  ni_dtim_count = 192 '���', ni_meshidlen = 173 '���', 
  ni_meshid = "������������������������������������������������������������������������������������������������", ni_mlstate = 3735929054, 
  ni_mllid = 49374, ni_mlpid = 57005, ni_mltimer = {c_links = {le = {
        le_next = 0xdeadc0dedeadc0de, le_prev = 0xdeadc0dedeadc0de}, sle = {
        sle_next = 0xdeadc0dedeadc0de}, tqe = {tqe_next = 0xdeadc0dedeadc0de, 
        tqe_prev = 0xdeadc0dedeadc0de}}, c_time = -2401050962867404578, 
    c_precision = -2401050962867404578, c_arg = 0xdeadc0dedeadc0de, 
    c_func = 0xdeadc0dedeadc0de, c_lock = 0xdeadc0dedeadc0de, 
    c_flags = -559038242, c_cpu = -559038242}, ni_mlrcnt = 222 '���', 
  ni_mltval = 192 '���', ni_mlhtimer = {c_links = {le = {
        le_next = 0xdeadc0dedeadc0de, le_prev = 0xdeadc0dedeadc0de}, sle = {
        sle_next = 0xdeadc0dedeadc0de}, tqe = {tqe_next = 0xdeadc0dedeadc0de, 
        tqe_prev = 0xdeadc0dedeadc0de}}, c_time = -2401050962867404578, 
    c_precision = -2401050962867404578, c_arg = 0xdeadc0dedeadc0de, 
    c_func = 0xdeadc0dedeadc0de, c_lock = 0xdeadc0dedeadc0de, 
    c_flags = -559038242, c_cpu = -559038242}, ni_mlhcnt = 222 '���', 
  ni_htcap = 57005, ni_htparam = 222 '���', ni_htctlchan = 192 '���', 
  ni_ht2ndchan = 173 '���', ni_htopmode = 222 '���', ni_htstbc = 222 '���', 
  ni_chw = 192 '���', ni_htrates = {rs_nrates = 173 '���', 
    rs_rates = "������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
������������������������������������������"}, ni_tx_ampdu = {{txa_ni = 0xdeadc0dedeadc0de, 
      txa_flags = 49374, txa_tid = 173 '���', txa_token = 222 '���', 
      txa_lastsample = -559038242, txa_pkts = -559038242, 
      txa_avgpps = -559038242, txa_qbytes = -559038242, txa_qframes = -16162, 
      txa_start = 57005, txa_seqpending = 49374, txa_wnd = 57005, 
      txa_attempts = 222 '���', txa_nextrequest = -559038242, txa_timer = {
        c_links = {le = {le_next = 0xdeadc0dedeadc0de, 
            le_prev = 0xdeadc0dedeadc0de}, sle = {
            sle_next = 0xdeadc0dedeadc0de}, tqe = {
            tqe_next = 0xdeadc0dedeadc0de, tqe_prev = 0xdeadc0dedeadc0de}}, 
        c_time = -2401050962867404578, c_precision = -2401050962867404578, 
        c_arg = 0xdeadc0dedeadc0de, c_func = 0xdeadc0dedeadc0de, 
        c_lock = 0xdeadc0dedeadc0de, c_flags = -559038242, 
        c_cpu = -559038242}, txa_private = 0xdeadc0dedeadc0de, txa_pad = {
        16045693110842147038, 16045693110842147038, 16045693110842147038, 
        16045693110842147038}} <repeats 16 times>}, ni_rx_ampdu = {{
      rxa_flags = -559038242, rxa_qbytes = -559038242, rxa_qframes = -16162, 
      rxa_seqstart = 57005, rxa_start = 49374, rxa_wnd = 57005, 
      rxa_age = -559038242, rxa_nframes = -559038242, rxa_m = {
        0xdeadc0dedeadc0de <repeats 64 times>}, 
      rxa_private = 0xdeadc0dedeadc0de, rxa_pad = {16045693110842147038, 
        16045693110842147038, 16045693110842147038}} <repeats 16 times>}, 
  ni_inact = -16162, ni_inact_reload = -8531, ni_txrate = -559038242, 
  ni_psq = {psq_lock = {lock_object = {
        lo_name = 0xdeadc0dedeadc0de <Address 0xdeadc0dedeadc0de out of bounds>
, lo_flags = 3735929054, lo_data = 3735929054, 
        lo_witness = 0xdeadc0dedeadc0de}, mtx_lock = 16045693110842147038}, 
    psq_len = -559038242, psq_maxlen = -559038242, psq_drops = -559038242, 
    psq_head = {{head = 0xdeadc0dedeadc0de, tail = 0xdeadc0dedeadc0de, 
        len = -559038242}, {head = 0xdeadc0dedeadc0de, 
        tail = 0xdeadc0dedeadc0de, len = -559038242}}}, ni_stats = {
    ns_rx_data = 3735929054, ns_rx_mgmt = 3735929054, 
    ns_rx_ctrl = 3735929054, ns_rx_ucast = 3735929054, 
    ns_rx_mcast = 3735929054, ns_rx_bytes = 16045693110842147038, 
    ns_rx_beacons = 16045693110842147038, ns_rx_proberesp = 3735929054, 
    ns_rx_dup = 3735929054, ns_rx_noprivacy = 3735929054, 
    ns_rx_wepfail = 3735929054, ns_rx_demicfail = 3735929054, 
    ns_rx_decap = 3735929054, ns_rx_defrag = 3735929054, 
    ns_rx_disassoc = 3735929054, ns_rx_deauth = 3735929054, 
    ns_rx_action = 3735929054, ns_rx_decryptcrc = 3735929054, 
    ns_rx_unauth = 3735929054, ns_rx_unencrypted = 3735929054, 
    ns_rx_drop = 3735929054, ns_tx_data = 3735929054, 
    ns_tx_mgmt = 3735929054, ns_tx_ctrl = 3735929054, 
    ns_tx_ucast = 3735929054, ns_tx_mcast = 3735929054, 
    ns_tx_bytes = 16045693110842147038, ns_tx_probereq = 3735929054, 
    ns_tx_novlantag = 3735929054, ns_tx_vlanmismatch = 3735929054, 
    ns_ps_discard = 3735929054, ns_tx_assoc = 3735929054, 
    ns_tx_assoc_fail = 3735929054, ns_tx_auth = 3735929054, 
    ns_tx_auth_fail = 3735929054, ns_tx_deauth = 3735929054, 
    ns_tx_deauth_code = 3735929054, ns_tx_disassoc = 3735929054, 
    ns_tx_disassoc_code = 3735929054, ns_spare = {3735929054, 3735929054, 
      3735929054, 3735929054, 3735929054, 3735929054, 3735929054, 
      3735929054}}, ni_wdsvap = 0xdeadc0dedeadc0de, 
  ni_rctls = 0xdeadc0dedeadc0de, ni_spare = {16045693110842147038, 
    16045693110842147038, 16045693110842147038}}



More information about the freebsd-current mailing list