From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.candelatech.com ([208.74.158.172]:37726 "EHLO ns3.lanforge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753724AbaBLW6W (ORCPT ); Wed, 12 Feb 2014 17:58:22 -0500 Message-ID: <52FBFC77.8080603@candelatech.com> (sfid-20140212_235826_342137_7A0E596D) Date: Wed, 12 Feb 2014 14:57:59 -0800 From: Ben Greear MIME-Version: 1.0 To: ath10k , "linux-wireless@vger.kernel.org" Subject: Circular lock, related to ath10k. Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: I saw this while testing some dodgy firmware. I have a few changes to ath10k, but I don't think there is anything that could cause this. ====================================================== [ INFO: possible circular locking dependency detected ] 3.14.0-rc1-wl-ath+ #9 Tainted: G C ------------------------------------------------------- wpa_supplicant/3206 is trying to acquire lock: (&local->sta_mtx){+.+.+.}, at: [] sta_info_insert_rcu+0x9e/0xb8 [mac80211] but task is already holding lock: (&ar->conf_mutex){+.+.+.}, at: [] ath10k_bss_info_changed+0x43/0x6fa [ath10k_core] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&ar->conf_mutex){+.+.+.}: [] lock_acquire+0x82/0x9d [] mutex_lock_nested+0x68/0x3e0 [] ath10k_sta_state+0x3b/0x40e [ath10k_core] [] drv_sta_state+0x87/0x17b [mac80211] [] sta_info_insert_finish+0x88/0x2b3 [mac80211] [] sta_info_insert_rcu+0xa6/0xb8 [mac80211] [] sta_info_insert+0xd/0x1a [mac80211] [] ieee80211_prep_connection+0x579/0x681 [mac80211] [] ieee80211_mgd_auth+0x1e6/0x285 [mac80211] [] ieee80211_auth+0x13/0x15 [mac80211] [] cfg80211_mlme_auth+0x13c/0x190 [cfg80211] [] nl80211_authenticate+0x295/0x2c1 [cfg80211] [] genl_family_rcv_msg+0x246/0x2ba [] genl_rcv_msg+0x3d/0x60 [] netlink_rcv_skb+0x3d/0x8b [] genl_rcv+0x24/0x34 [] netlink_unicast+0xc6/0x147 [] netlink_sendmsg+0x5a0/0x5e6 [] __sock_sendmsg_nosec+0x25/0x27 [] sock_sendmsg+0x5a/0x7b [] ___sys_sendmsg+0x21f/0x2c0 [] __sys_sendmsg+0x3d/0x5b [] SyS_sendmsg+0xd/0x19 [] system_call_fastpath+0x1a/0x1f -> #0 (&local->sta_mtx){+.+.+.}: [] __lock_acquire+0xac6/0xe48 [] lock_acquire+0x82/0x9d [] mutex_lock_nested+0x68/0x3e0 [] sta_info_insert_rcu+0x9e/0xb8 [mac80211] [] sta_info_insert+0xd/0x1a [mac80211] [] ieee80211_prep_connection+0x579/0x681 [mac80211] [] ieee80211_mgd_auth+0x1e6/0x285 [mac80211] [] ieee80211_auth+0x13/0x15 [mac80211] [] cfg80211_mlme_auth+0x13c/0x190 [cfg80211] [] nl80211_authenticate+0x295/0x2c1 [cfg80211] [] genl_family_rcv_msg+0x246/0x2ba [] genl_rcv_msg+0x3d/0x60 [] netlink_rcv_skb+0x3d/0x8b [] genl_rcv+0x24/0x34 [] netlink_unicast+0xc6/0x147 [] netlink_sendmsg+0x5a0/0x5e6 [] __sock_sendmsg_nosec+0x25/0x27 [] sock_sendmsg+0x5a/0x7b [] ___sys_sendmsg+0x21f/0x2c0 [] __sys_sendmsg+0x3d/0x5b [] SyS_sendmsg+0xd/0x19 [] system_call_fastpath+0x1a/0x1f other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&ar->conf_mutex); lock(&local->sta_mtx); lock(&ar->conf_mutex); lock(&local->sta_mtx); *** DEADLOCK *** 5 locks held by wpa_supplicant/3206: #0: (cb_lock){++++++}, at: [] genl_rcv+0x15/0x34 #1: (genl_mutex){+.+.+.}, at: [] genl_lock+0x12/0x14 #2: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x12/0x14 #3: (&wdev->mtx){+.+.+.}, at: [] wdev_lock+0xf/0x11 [cfg80211] #4: (&ar->conf_mutex){+.+.+.}, at: [] ath10k_bss_info_changed+0x43/0x6fa [ath10k_core] stack backtrace: CPU: 0 PID: 3206 Comm: wpa_supplicant Tainted: G C 3.14.0-rc1-wl-ath+ #9 Hardware name: To be filled by O.E.M. To be filled by O.E.M./HURONRIVER, BIOS 4.6.5 05/02/2012 ffffffff81f57ac0 ffff88021525d4d8 ffffffff815cfed3 0000000000000006 ffffffff81f57ac0 ffff88021525d528 ffffffff815cc171 ffff88021525d4f8 ffff8800d309c520 ffff8800d309cdb0 ffff8800d309c520 ffff8800d309cdb0 Call Trace: [] dump_stack+0x4e/0x71 [] print_circular_bug+0x1f8/0x209 [] __lock_acquire+0xac6/0xe48 [] lock_acquire+0x82/0x9d [] ? sta_info_insert_rcu+0x9e/0xb8 [mac80211] [] mutex_lock_nested+0x68/0x3e0 [] ? sta_info_insert_rcu+0x9e/0xb8 [mac80211] [] ? sta_info_insert_rcu+0x9e/0xb8 [mac80211] [] ? ath10k_bss_info_changed+0x399/0x6fa [ath10k_core] [] sta_info_insert_rcu+0x9e/0xb8 [mac80211] [] sta_info_insert+0xd/0x1a [mac80211] [] ieee80211_prep_connection+0x579/0x681 [mac80211] [] ieee80211_mgd_auth+0x1e6/0x285 [mac80211] [] ieee80211_auth+0x13/0x15 [mac80211] [] cfg80211_mlme_auth+0x13c/0x190 [cfg80211] [] ? mutex_lock_nested+0x348/0x3e0 [] ? wdev_lock+0xf/0x11 [cfg80211] [] nl80211_authenticate+0x295/0x2c1 [cfg80211] [] genl_family_rcv_msg+0x246/0x2ba [] ? mutex_lock_nested+0x348/0x3e0 [] genl_rcv_msg+0x3d/0x60 [] ? genl_family_rcv_msg+0x2ba/0x2ba [] netlink_rcv_skb+0x3d/0x8b [] genl_rcv+0x24/0x34 [] netlink_unicast+0xc6/0x147 [] netlink_sendmsg+0x5a0/0x5e6 [] ? __lock_acquire+0x5ee/0xe48 [] __sock_sendmsg_nosec+0x25/0x27 [] sock_sendmsg+0x5a/0x7b [] ? lock_release+0x14e/0x17b [] ? might_fault+0x9e/0xa5 [] ? might_fault+0x55/0xa5 [] ? verify_iovec+0x60/0xb3 [] ___sys_sendmsg+0x21f/0x2c0 [] ? __lock_acquire+0x5ee/0xe48 [] ? fsnotify+0x260/0x29b [] ? fsnotify+0x76/0x29b [] ? lock_acquire+0x94/0x9d [] ? read_seqcount_begin.constprop.25+0x73/0x90 [] __sys_sendmsg+0x3d/0x5b [] SyS_sendmsg+0xd/0x19 [] system_call_fastpath+0x1a/0x1f -- Ben Greear Candela Technologies Inc http://www.candelatech.com