Hello maintainers, I compiled Linux 5.18-rc1 on my machine this morning. Got the following lockdep splat. Please shed some light. dmesg output and config attached below... If you need more information, please let me know. Thank you! <4>[ 361.927364][ T1166] <4>[ 361.927370][ T1166] ====================================================== <4>[ 361.927371][ T1166] WARNING: possible circular locking dependency detected <4>[ 361.927372][ T1166] 5.18.0-rc1-superb-owl #5 Tainted: G W <4>[ 361.927373][ T1166] ------------------------------------------------------ <4>[ 361.927374][ T1166] kworker/u16:18/1166 is trying to acquire lock: <4>[ 361.927375][ T1166] ffff888109f28198 (&rtwdev->mutex){+.+.}-{3:3}, at: rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927384][ T1166] <4>[ 361.927384][ T1166] but task is already holding lock: <4>[ 361.927384][ T1166] ffff888109f22988 (&local->iflist_mtx){+.+.}-{3:3}, at: ieee80211_mgd_probe_ap (net/mac80211/mlme.c:2722) mac80211 <4>[ 361.927408][ T1166] <4>[ 361.927408][ T1166] which lock already depends on the new lock. <4>[ 361.927408][ T1166] <4>[ 361.927408][ T1166] <4>[ 361.927408][ T1166] the existing dependency chain (in reverse order) is: <4>[ 361.927409][ T1166] <4>[ 361.927409][ T1166] -> #1 (&local->iflist_mtx){+.+.}-{3:3}: <4>[ 361.927411][ T1166] lock_acquire (kernel/locking/lockdep.c:5641) <4>[ 361.927414][ T1166] __mutex_lock_common (kernel/locking/mutex.c:600) <4>[ 361.927417][ T1166] mutex_lock_nested (kernel/locking/mutex.c:733 kernel/locking/mutex.c:785) <4>[ 361.927419][ T1166] ieee80211_iterate_interfaces (net/mac80211/util.c:815) mac80211 <4>[ 361.927434][ T1166] rtw_fw_c2h_cmd_handle (./include/net/mac80211.h:? drivers/net/wireless/realtek/rtw88/fw.c:177 drivers/net/wireless/realtek/rtw88/fw.c:243) rtw88_core <4>[ 361.927437][ T1166] rtw_c2h_work (./include/linux/netdevice.h:3710 drivers/net/wireless/realtek/rtw88/main.c:274) rtw88_core <4>[ 361.927441][ T1166] process_one_work (kernel/workqueue.c:2294) <4>[ 361.927442][ T1166] worker_thread (./include/linux/list.h:292 kernel/workqueue.c:2437) <4>[ 361.927444][ T1166] kthread (kernel/kthread.c:377) <4>[ 361.927445][ T1166] ret_from_fork (??:?) <4>[ 361.927447][ T1166] <4>[ 361.927447][ T1166] -> #0 (&rtwdev->mutex){+.+.}-{3:3}: <4>[ 361.927449][ T1166] validate_chain (kernel/locking/lockdep.c:? kernel/locking/lockdep.c:3188 kernel/locking/lockdep.c:3803) <4>[ 361.927450][ T1166] __lock_acquire (kernel/locking/lockdep.c:5029) <4>[ 361.927452][ T1166] lock_acquire (kernel/locking/lockdep.c:5641) <4>[ 361.927453][ T1166] __mutex_lock_common (kernel/locking/mutex.c:600) <4>[ 361.927455][ T1166] mutex_lock_nested (kernel/locking/mutex.c:733 kernel/locking/mutex.c:785) <4>[ 361.927456][ T1166] rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927460][ T1166] ieee80211_hw_config (util.c:?) mac80211 <4>[ 361.927474][ T1166] ieee80211_recalc_ps (net/mac80211/mlme.c:1745 net/mac80211/mlme.c:1827) mac80211 <4>[ 361.927489][ T1166] ieee80211_mgd_probe_ap (net/mac80211/mlme.c:2723) mac80211 <4>[ 361.927503][ T1166] process_one_work (kernel/workqueue.c:2294) <4>[ 361.927505][ T1166] worker_thread (./include/linux/list.h:292 kernel/workqueue.c:2437) <4>[ 361.927506][ T1166] kthread (kernel/kthread.c:377) <4>[ 361.927507][ T1166] ret_from_fork (??:?) <4>[ 361.927508][ T1166] <4>[ 361.927508][ T1166] other info that might help us debug this: <4>[ 361.927508][ T1166] <4>[ 361.927509][ T1166] Possible unsafe locking scenario: <4>[ 361.927509][ T1166] <4>[ 361.927510][ T1166] CPU0 CPU1 <4>[ 361.927510][ T1166] ---- ---- <4>[ 361.927511][ T1166] lock(&local->iflist_mtx); <4>[ 361.927512][ T1166] lock(&rtwdev->mutex); <4>[ 361.927513][ T1166] lock(&local->iflist_mtx); <4>[ 361.927514][ T1166] lock(&rtwdev->mutex); <4>[ 361.927515][ T1166] <4>[ 361.927515][ T1166] *** DEADLOCK *** <4>[ 361.927515][ T1166] <4>[ 361.927516][ T1166] 4 locks held by kworker/u16:18/1166: <4>[ 361.927517][ T1166] #0: ffff888169e80138 ((wq_completion)phy0){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:?) <4>[ 361.927520][ T1166] #1: ffffc9000272fe70 ((work_completion)(&ifmgd->monitor_work)){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:?) <4>[ 361.927523][ T1166] #2: ffff8881079b8d40 (&wdev->mtx){+.+.}-{3:3}, at: ieee80211_mgd_probe_ap (net/mac80211/mlme.c:2675) mac80211 <4>[ 361.927539][ T1166] #3: ffff888109f22988 (&local->iflist_mtx){+.+.}-{3:3}, at: ieee80211_mgd_probe_ap (net/mac80211/mlme.c:2722) mac80211 <4>[ 361.927554][ T1166] <4>[ 361.927554][ T1166] stack backtrace: <4>[ 361.927555][ T1166] CPU: 4 PID: 1166 Comm: kworker/u16:18 Tainted: G W 5.18.0-rc1-superb-owl #5 f3938b7027e9f0a27179200b9e84ac711db665f6 <4>[ 361.927557][ T1166] Hardware name: HP HP Laptop 14s-dq2xxx/87FD, BIOS F.15 09/15/2021 <4>[ 361.927559][ T1166] Workqueue: phy0 ieee80211_sta_monitor_work [mac80211] <4>[ 361.927574][ T1166] Call Trace: <4>[ 361.927575][ T1166] <4>[ 361.927577][ T1166] dump_stack_lvl (lib/dump_stack.c:107) <4>[ 361.927580][ T1166] print_circular_bug (lib/dump_stack.c:? kernel/locking/lockdep.c:2023) <4>[ 361.927582][ T1166] ? ret_from_fork (??:?) <4>[ 361.927584][ T1166] ? stack_trace_save (kernel/stacktrace.c:123) <4>[ 361.927586][ T1166] ? save_trace (kernel/locking/lockdep.c:551) <4>[ 361.927587][ T1166] ? __bfs (kernel/locking/lockdep.c:1760) <4>[ 361.927589][ T1166] check_noncircular (kernel/locking/lockdep.c:?) <4>[ 361.927592][ T1166] validate_chain (kernel/locking/lockdep.c:? kernel/locking/lockdep.c:3188 kernel/locking/lockdep.c:3803) <4>[ 361.927595][ T1166] ? lockdep_unlock (kernel/locking/lockdep.c:126) <4>[ 361.927596][ T1166] ? validate_chain (kernel/locking/lockdep.c:? kernel/locking/lockdep.c:3807) <4>[ 361.927599][ T1166] ? __lock_acquire (kernel/locking/lockdep.c:5029) <4>[ 361.927601][ T1166] ? lock_is_held_type (kernel/locking/lockdep.c:? kernel/locking/lockdep.c:5685) <4>[ 361.927603][ T1166] __lock_acquire (kernel/locking/lockdep.c:5029) <4>[ 361.927605][ T1166] lock_acquire (kernel/locking/lockdep.c:5641) <4>[ 361.927606][ T1166] ? rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927611][ T1166] ? rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927615][ T1166] __mutex_lock_common (kernel/locking/mutex.c:600) <4>[ 361.927616][ T1166] ? rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927620][ T1166] ? lock_is_held_type (kernel/locking/lockdep.c:? kernel/locking/lockdep.c:5685) <4>[ 361.927621][ T1166] ? rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927625][ T1166] mutex_lock_nested (kernel/locking/mutex.c:733 kernel/locking/mutex.c:785) <4>[ 361.927627][ T1166] rtw_ops_config (drivers/net/wireless/realtek/rtw88/mac80211.c:80) rtw88_core <4>[ 361.927631][ T1166] ieee80211_hw_config (util.c:?) mac80211 <4>[ 361.927647][ T1166] ieee80211_recalc_ps (net/mac80211/mlme.c:1745 net/mac80211/mlme.c:1827) mac80211 <4>[ 361.927662][ T1166] ieee80211_mgd_probe_ap (net/mac80211/mlme.c:2723) mac80211 <4>[ 361.927676][ T1166] process_one_work (kernel/workqueue.c:2294) <4>[ 361.927679][ T1166] worker_thread (./include/linux/list.h:292 kernel/workqueue.c:2437) <4>[ 361.927681][ T1166] ? worker_clr_flags (kernel/workqueue.c:2379) <4>[ 361.927683][ T1166] kthread (kernel/kthread.c:377) <4>[ 361.927684][ T1166] ? kthread_blkcg (kernel/kthread.c:331) <4>[ 361.927686][ T1166] ret_from_fork (??:?) <4>[ 361.927689][ T1166] <6>[ 719.468893][ T853] wlo1: authenticate with 82:01:2d:54:34:d1 <6>[ 719.468912][ T853] wlo1: bad VHT capabilities, disabling VHT <6>[ 719.758430][ T853] wlo1: send auth to 82:01:2d:54:34:d1 (try 1/3) <6>[ 719.779909][ T4552] wlo1: send auth to 82:01:2d:54:34:d1 (try 2/3) <6>[ 719.789615][ T4552] wlo1: authenticated <6>[ 719.791537][ T4552] wlo1: associate with 82:01:2d:54:34:d1 (try 1/3) <6>[ 719.796222][ T4552] wlo1: RX AssocResp from 82:01:2d:54:34:d1 (capab=0x431 status=0 aid=1) <6>[ 719.796455][ T4552] wlo1: associated <7>[ 719.895029][ T4552] wlo1: Limiting TX power to 0 (-128 - 0) dBm as advertised by 82:01:2d:54:34:d1 <6>[ 1941.504451][ T853] wlo1: authenticate with 82:01:2d:54:34:d1 <6>[ 1941.504469][ T853] wlo1: bad VHT capabilities, disabling VHT <6>[ 1941.794037][ T853] wlo1: send auth to 82:01:2d:54:34:d1 (try 1/3) <6>[ 1941.815524][ T404] wlo1: send auth to 82:01:2d:54:34:d1 (try 2/3) <6>[ 1941.840288][ T404] wlo1: send auth to 82:01:2d:54:34:d1 (try 3/3) <6>[ 1941.850306][ T404] wlo1: authenticated <6>[ 1941.854042][ T404] wlo1: associate with 82:01:2d:54:34:d1 (try 1/3) <6>[ 1941.860680][ T404] wlo1: RX AssocResp from 82:01:2d:54:34:d1 (capab=0x431 status=0 aid=1) <6>[ 1941.860918][ T404] wlo1: associated <7>[ 1941.967448][ T404] wlo1: Limiting TX power to 0 (-128 - 0) dBm as advertised by 82:01:2d:54:34:d1 -- Ammar Faizi