LOR - COM LOCK

PseudoCylon moonlightakkiy at yahoo.ca
Sat Oct 8 14:35:03 UTC 2011


> But I wonder whether there's a bigger problem somewhere lurking in
> that older HAL code. Hrm!

Could be. (might not be a driver problem.)

I've got

lock order reversal:
 1st 0xffffff8000a257d0 run0_node_lock (run0_node_lock) @
/usr/src/sys/net80211/ieee80211_ioctl.c:1326
 2nd 0xffffff8000a24018 run0_com_lock (run0_com_lock) @
/usr/src/sys/net80211/ieee80211_node.c:2486
 (line numbers are of old 9-CUREENT but referring the same lock)
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_checkorder() at witness_checkorder+0x81e
_mtx_lock_flags() at _mtx_lock_flags+0x78
ieee80211_node_leave() at ieee80211_node_leave+0x80
setmlme_common() at setmlme_common+0x27b
ieee80211_ioctl_setmlme() at ieee80211_ioctl_setmlme+0x7e
ieee80211_ioctl_set80211() at ieee80211_ioctl_set80211+0xaba
in_control() at in_control+0x1ff
ifioctl() at ifioctl+0x1100
kern_ioctl() at kern_ioctl+0xc5
ioctl() at ioctl+0xf0
syscallenter() at syscallenter+0x1b5
syscall() at syscall+0x4c
Xfast_syscall() at Xfast_syscall+0xe2


Also, I've got

lock order reversal:
 1st 0xffffff8000a257d0 run0_node_lock (run0_node_lock) @
/usr/src/sys/net80211/ieee80211_ioctl.c:1326
 2nd 0xffffff8000a19328 run0 (network driver) @
/mnt/share/home/AK/FreeBSD/modules/usb/run/../../../../mnt/dev/usb/wlan/if_run.c:3409
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2a
_witness_debugger() at _witness_debugger+0x2e
witness_checkorder() at witness_checkorder+0x81e
_mtx_lock_flags() at _mtx_lock_flags+0x78
run_raw_xmit() at run_raw_xmit+0x57
ieee80211_send_mgmt() at ieee80211_send_mgmt+0x4d5
domlme() at domlme+0x95
setmlme_common() at setmlme_common+0x27b
ieee80211_ioctl_setmlme() at ieee80211_ioctl_setmlme+0x7e
ieee80211_ioctl_set80211() at ieee80211_ioctl_set80211+0xaba
in_control() at in_control+0x1ff
ifioctl() at ifioctl+0x1100
kern_ioctl() at kern_ioctl+0xc5
ioctl() at ioctl+0xf0
syscallenter() at syscallenter+0x1b5
syscall() at syscall+0x4c
Xfast_syscall() at Xfast_syscall+0xe2


Here are suspicious part (Though, I don't have any solutions.)
setmlme_common() at setmlme_common+0x27b
ieee80211_ioctl_setmlme() at ieee80211_ioctl_setmlme+0x7e
ieee80211_ioctl_set80211() at ieee80211_ioctl_set80211+0xaba
in_control() at in_control+0x1ff


AK


More information about the freebsd-wireless mailing list