ath 11n update: locking, regressions, testing

Adrian Chadd adrian at freebsd.org
Tue Oct 25 12:35:36 UTC 2011


.. and here's another example LOR, this time between the net80211 node
lock and the ath lock, again during raw TX.

This occurs because of an ioctl call through setmlme_dropsta(), which
holds the node lock whilst it calls domlme(), which sends a management
frame via IEEE80211_SEND_MGMT ->ic_raw_xmit->ath_raw_xmit().

Again, I'm not entirely sure how to fix this.



Adrian

lock order reversal:
 1st 0xc08316cc ath0_node_lock (ath0_node_lock) @
/data/freebsd/mips/if_ath_tx/src/sys/net80211/ieee80211_ioctl.c:1326
 2nd 0x80a01440 ath0 (ath0) @
/data/freebsd/mips/if_ath_tx/src/sys/dev/ath/if_ath_tx.c:1716
KDB: stack backtrace:
db_trace_thread+30 (?,?,?,?) ra 80361b8c sp c7be9750 sz 24
db_trace_self+1c (?,?,?,?) ra 80074dbc sp c7be9768 sz 24
80074d88+34 (?,?,?,?) ra 801e103c sp c7be9780 sz 416
kdb_backtrace+44 (?,?,?,?) ra 801f8f38 sp c7be9920 sz 24
801f8f04+34 (?,?,?,?) ra 801f9bf4 sp c7be9938 sz 32
witness_checkorder+9cc (?,?,803b67cc,6b4) ra 80199a50 sp c7be9958 sz 80
_mtx_lock_flags+c4 (?,?,?,?) ra 8008b064 sp c7be99a8 sz 48
ath_raw_xmit+60 (?,?,?,?) ra 802b20a0 sp c7be99d8 sz 128
ieee80211_mgmt_output+2a4 (?,?,?,?) ra 802b4fac sp c7be9a58 sz 64
ieee80211_send_mgmt+9e4 (?,?,?,?) ra 802a29d4 sp c7be9a98 sz 96
802a296c+68 (?,?,?,?) ra 802a3824 sp c7be9af8 sz 32
802a3710+114 (?,?,?,?) ra 802a3fac sp c7be9b18 sz 64
802a3f14+98 (?,?,?,?) ra 802a4778 sp c7be9b58 sz 72
802a4224+554 (?,?,?,?) ra 802a6434 sp c7be9ba0 sz 128
ieee80211_ioctl+2c8 (?,?,?,?) ra 802cc71c sp c7be9c20 sz 48
in_control+1c8 (?,?,?,?) ra 80265488 sp c7be9c50 sz 88
ifioctl+13cc (?,?,80aa9de0,8072e300) ra 80201a90 sp c7be9ca8 sz 144
soo_ioctl+3b0 (?,?,?,?) ra 801fc354 sp c7be9d38 sz 40
kern_ioctl+248 (?,?,?,?) ra 801fc4fc sp c7be9d60 sz 64
ioctl+130 (?,?,?,?) ra 80355b8c sp c7be9da0 sz 56
trap+8a4 (?,?,?,?) ra 8034e01c sp c7be9dd8 sz 168
MipsUserGenException+10c (?,?,?,40658290) ra 0 sp c7be9e80 sz 0
pid 171


More information about the freebsd-wireless mailing list