I'll follow up with details to reproduce if I can. I was using ifconfig to set the IP on the interface. [74630.112167] wlan0: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge) [74664.034332] phy2: Removed STA 00:18:41:c8:58:43 [74664.035244] phy2: Destroyed STA 00:18:41:c8:58:43 [74664.035284] wlan0: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge) [74695.265167] phy2: Adding new IBSS station 00:1c:bf:2c:ac:ed (dev=wlan0) [74695.265243] phy2: Allocated STA 00:1c:bf:2c:ac:ed [74695.266457] phy2: Added IBSS STA 00:1c:bf:2c:ac:ed [74695.266634] phy2: Finished adding IBSS STA 00:1c:bf:2c:ac:ed [75042.857763] [75042.857765] ======================================================= [75042.857771] [ INFO: possible circular locking dependency detected ] [75042.857775] 2.6.35-rc5-wl+ #221 [75042.857778] ------------------------------------------------------- [75042.857782] ifconfig/9044 is trying to acquire lock: [75042.857785] ((&sdata->work)){+.+.+.}, at: [<c1041f94>] __cancel_work_timer+0x86/0x18b [75042.857798] [75042.857799] but task is already holding lock: [75042.857803] (&wdev->mtx){+.+.+.}, at: [<f8567b87>] cfg80211_leave_ibss+0x27/0x45 [cfg80211] [75042.857823] [75042.857824] which lock already depends on the new lock. [75042.857826] [75042.857829] [75042.857830] the existing dependency chain (in reverse order) is: [75042.857833] [75042.857834] -> #1 (&wdev->mtx){+.+.+.}: [75042.857841] [<c105678b>] __lock_acquire+0x7cb/0x824 [75042.857849] [<c1056893>] lock_acquire+0xaf/0xce [75042.857855] [<c12a1a61>] mutex_lock_nested+0x52/0x2b0 [75042.857862] [<f8566f83>] cfg80211_send_deauth+0x27/0x40 [cfg80211] [75042.857876] [<f85c68f1>] ieee80211_send_deauth_disassoc+0xfc/0x154 [mac80211] [75042.857898] [<f85c7c58>] ieee80211_sta_work+0xdd/0xf8 [mac80211] [75042.857918] [<f85cc9bd>] ieee80211_iface_work+0x23c/0x24d [mac80211] [75042.857939] [<c1041713>] worker_thread+0x1b4/0x284 [75042.857944] [<c1044ab1>] kthread+0x64/0x69 [75042.857950] [<c1002cfa>] kernel_thread_helper+0x6/0x10 [75042.857957] [75042.857958] -> #0 ((&sdata->work)){+.+.+.}: [75042.857965] [<c1055ab0>] validate_chain+0x669/0xb79 [75042.857971] [<c105678b>] __lock_acquire+0x7cb/0x824 [75042.857977] [<c1056893>] lock_acquire+0xaf/0xce [75042.857982] [<c1041fbc>] __cancel_work_timer+0xae/0x18b [75042.857988] [<c10420ba>] cancel_work_sync+0xf/0x11 [75042.857994] [<f85c516e>] ieee80211_ibss_leave+0xb0/0x137 [mac80211] [75042.858013] [<f85ce793>] ieee80211_leave_ibss+0x13/0x15 [mac80211] [75042.858034] [<f8567740>] __cfg80211_leave_ibss+0x51/0x6b [cfg80211] [75042.858049] [<f8567b94>] cfg80211_leave_ibss+0x34/0x45 [cfg80211] [75042.858063] [<f85572f6>] cfg80211_netdev_notifier_call+0x23a/0x419 [cfg80211] [75042.858074] [<c12a5f88>] notifier_call_chain+0x56/0x83 [75042.858082] [<c1048fd2>] raw_notifier_call_chain+0x11/0x13 [75042.858088] [<c12366f0>] call_netdevice_notifiers+0x41/0x48 [75042.858096] [<c1236adc>] __dev_close+0x54/0x7b [75042.858101] [<c1234794>] __dev_change_flags+0x98/0x10f [75042.858107] [<c12369b3>] dev_change_flags+0x18/0x44 [75042.858113] [<c127c14b>] devinet_ioctl+0x227/0x515 [75042.858119] [<c127d7cc>] inet_ioctl+0x87/0xa0 [75042.858125] [<c12274a7>] sock_ioctl+0x1d3/0x1f5 [75042.858131] [<c10befc2>] vfs_ioctl+0x2c/0x96 [75042.858137] [<c10bf541>] do_vfs_ioctl+0x471/0x4a5 [75042.858143] [<c10bf5a8>] sys_ioctl+0x33/0x4d [75042.858148] [<c10027d0>] sysenter_do_call+0x12/0x36 [75042.858154] [75042.858155] other info that might help us debug this: [75042.858157] [75042.858161] 2 locks held by ifconfig/9044: [75042.858164] #0: (rtnl_mutex){+.+.+.}, at: [<c1240875>] rtnl_lock+0x14/0x16 [75042.858174] #1: (&wdev->mtx){+.+.+.}, at: [<f8567b87>] cfg80211_leave_ibss+0x27/0x45 [cfg80211] [75042.858192] [75042.858193] stack backtrace: [75042.858198] Pid: 9044, comm: ifconfig Not tainted 2.6.35-rc5-wl+ #221 [75042.858202] Call Trace: [75042.858208] [<c12a0284>] ? printk+0x14/0x18 [75042.858214] [<c10544bb>] print_circular_bug+0x90/0x9c [75042.858221] [<c1055ab0>] validate_chain+0x669/0xb79 [75042.858228] [<c105678b>] __lock_acquire+0x7cb/0x824 [75042.858234] [<c1049900>] ? pm_qos_power_open+0x53/0x73 [75042.858240] [<c1041f94>] ? __cancel_work_timer+0x86/0x18b [75042.858246] [<c1056893>] lock_acquire+0xaf/0xce [75042.858252] [<c1041f94>] ? __cancel_work_timer+0x86/0x18b [75042.858256] [<c1041fbc>] __cancel_work_timer+0xae/0x18b [75042.858256] [<c1041f94>] ? __cancel_work_timer+0x86/0x18b [75042.858256] [<c1053cd5>] ? mark_held_locks+0x43/0x5b [75042.858256] [<c12a3282>] ? _raw_spin_unlock_irqrestore+0x47/0x5d [75042.858256] [<c12a5e7c>] ? sub_preempt_count+0x8b/0x98 [75042.858256] [<c12a3282>] ? _raw_spin_unlock_irqrestore+0x47/0x5d [75042.858256] [<c103a3f8>] ? try_to_del_timer_sync+0xab/0xb3 [75042.858256] [<c10420ba>] cancel_work_sync+0xf/0x11 [75042.858256] [<f85c516e>] ieee80211_ibss_leave+0xb0/0x137 [mac80211] [75042.858256] [<f85ce793>] ieee80211_leave_ibss+0x13/0x15 [mac80211] [75042.858256] [<f8567740>] __cfg80211_leave_ibss+0x51/0x6b [cfg80211] [75042.858256] [<f8567b94>] cfg80211_leave_ibss+0x34/0x45 [cfg80211] [75042.858256] [<f85572f6>] cfg80211_netdev_notifier_call+0x23a/0x419 [cfg80211] [75042.858256] [<c12a5f88>] notifier_call_chain+0x56/0x83 [75042.858256] [<c1048fd2>] raw_notifier_call_chain+0x11/0x13 [75042.858256] [<c12366f0>] call_netdevice_notifiers+0x41/0x48 [75042.858256] [<c1236adc>] __dev_close+0x54/0x7b [75042.858256] [<c1234794>] __dev_change_flags+0x98/0x10f [75042.858256] [<c12369b3>] dev_change_flags+0x18/0x44 [75042.858256] [<c127c14b>] devinet_ioctl+0x227/0x515 [75042.858256] [<c127d7cc>] inet_ioctl+0x87/0xa0 [75042.858256] [<c12274a7>] sock_ioctl+0x1d3/0x1f5 [75042.858256] [<c10befc2>] vfs_ioctl+0x2c/0x96 [75042.858256] [<c12272d4>] ? sock_ioctl+0x0/0x1f5 [75042.858256] [<c10bf541>] do_vfs_ioctl+0x471/0x4a5 [75042.858256] [<c104889b>] ? up_read+0x1b/0x30 [75042.858256] [<c12a5dc3>] ? do_page_fault+0x3c8/0x3f6 [75042.858256] [<c113df4c>] ? trace_hardirqs_on_thunk+0xc/0x10 [75042.858256] [<c10bf5a8>] sys_ioctl+0x33/0x4d [75042.858256] [<c10027d0>] sysenter_do_call+0x12/0x36 [75042.861424] phy2: Removed STA 00:1c:bf:2c:ac:ed [75042.861997] phy2: Destroyed STA 00:1c:bf:2c:ac:ed [75042.871814] phy2: device now idle [75400.716965] PM: Removing info for No Bus:wlan0 [75400.720911] PM: Removing info for No Bus:rfkill2
Created attachment 27164 [details] patch to fix lockdep complaint & a race Can you try this please?
Hmm, well patch worked fine switching back and forth between ibss and station and randomly leaving the networks - that said I also couldn't figure out the right combo to reproduce the warning in the unpatched kernel. The reasoning makes sense though.
Hmm, it's possible that you have to get disconnected by the AP rather than disconnecting yourself for it to trigger.
Yes, I can reproduce it that way w/o the patch, and the patch fixes it.