Re: ath0_node_lock ath0_com_lock lor
On 28 September 2012 07:03, PseudoCylon wrote: >> Hm, that's odd. Who wants to go digging to figure out which code paths >> are causing this? :) > A suggestion > > in setmlme_dropsta() > http://fxr.watson.org/fxr/source/net80211/ieee80211_ioctl.c#L1331 > > Just forget about node lock and call ieee80211_find_node() instead of > ieee80211_find_node_locked(). (I believe this lor occurs only in AP > mode.) Right, it's in the wiki, but I don't know what the two code paths are that have inverted locks. So would someone please map out the two code paths and where the locks are grabbed, so I/we can think about how this should be better fixed? Thanks, Adrian ___ freebsd-wireless@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-wireless To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"
Re: ath0_node_lock ath0_com_lock lor
> -- > > Message: 1 > Date: Thu, 27 Sep 2012 12:44:04 -0700 > From: Adrian Chadd > Subject: Re: ath0_node_lock ath0_com_lock lor > To: Kim Culhan > Cc: freebsd-wireless@freebsd.org > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > Hm, that's odd. Who wants to go digging to figure out which code paths > are causing this? :) > A suggestion in setmlme_dropsta() http://fxr.watson.org/fxr/source/net80211/ieee80211_ioctl.c#L1331 Just forget about node lock and call ieee80211_find_node() instead of ieee80211_find_node_locked(). (I believe this lor occurs only in AP mode.) AK PS This lor is already documented in wifi debug wiki. > > > On 26 September 2012 12:49, Kim Culhan wrote: >> Have not seen an lor in some time, this noted today fyi >> >> lock order reversal: >> 1st 0xff80009267f0 ath0_node_lock (ath0_node_lock) @ >> /usr/src/sys/net80211/ieee80211_ioctl.c:1341 >> 2nd 0xff8000925018 ath0_com_lock (ath0_com_lock) @ >> /usr/src/sys/net80211/ieee80211_node.c:2619 >> KDB: stack backtrace: >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b >> kdb_backtrace() at kdb_backtrace+0x39 >> witness_checkorder() at witness_checkorder+0xc37 >> _mtx_lock_flags() at _mtx_lock_flags+0x83 >> ieee80211_node_leave() at ieee80211_node_leave+0x97 >> setmlme_common() at setmlme_common+0x3f7 >> ieee80211_ioctl_setmlme() at ieee80211_ioctl_setmlme+0x87 >> ieee80211_ioctl_set80211() at ieee80211_ioctl_set80211+0x5a5 >> in_control() at in_control+0x216 >> ifioctl() at ifioctl+0x1020 >> kern_ioctl() at kern_ioctl+0x1b0 >> sys_ioctl() at sys_ioctl+0x11f >> amd64_syscall() at amd64_syscall+0x25a >> Xfast_syscall() at Xfast_syscall+0xfb >> --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x801203b8a, rsp = >> 0x7fffd9b8, rbp = 0x7fffda20 --- >> >> >> -- >> thanks >> -kim ___ freebsd-wireless@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-wireless To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"
Re: ath0_node_lock ath0_com_lock lor
Hm, that's odd. Who wants to go digging to figure out which code paths are causing this? :) I'm knee deep in ANI at the moment. :) Adrian On 26 September 2012 12:49, Kim Culhan wrote: > Have not seen an lor in some time, this noted today fyi > > lock order reversal: > 1st 0xff80009267f0 ath0_node_lock (ath0_node_lock) @ > /usr/src/sys/net80211/ieee80211_ioctl.c:1341 > 2nd 0xff8000925018 ath0_com_lock (ath0_com_lock) @ > /usr/src/sys/net80211/ieee80211_node.c:2619 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b > kdb_backtrace() at kdb_backtrace+0x39 > witness_checkorder() at witness_checkorder+0xc37 > _mtx_lock_flags() at _mtx_lock_flags+0x83 > ieee80211_node_leave() at ieee80211_node_leave+0x97 > setmlme_common() at setmlme_common+0x3f7 > ieee80211_ioctl_setmlme() at ieee80211_ioctl_setmlme+0x87 > ieee80211_ioctl_set80211() at ieee80211_ioctl_set80211+0x5a5 > in_control() at in_control+0x216 > ifioctl() at ifioctl+0x1020 > kern_ioctl() at kern_ioctl+0x1b0 > sys_ioctl() at sys_ioctl+0x11f > amd64_syscall() at amd64_syscall+0x25a > Xfast_syscall() at Xfast_syscall+0xfb > --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x801203b8a, rsp = > 0x7fffd9b8, rbp = 0x7fffda20 --- > > > -- > thanks > -kim ___ freebsd-wireless@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-wireless To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"