============================================ WARNING: possible recursive locking detected 6.9.0-rc6-syzkaller-01479-gb1de3c0df7ab #0 Not tainted -------------------------------------------- kworker/u8:0/10 is trying to acquire lock: ffff8880b942a718 (&base->lock){-.-.}-{2:2}, at: lock_timer_base+0x112/0x240 kernel/time/timer.c:1052 but task is already holding lock: ffff8880b952a718 (&base->lock){-.-.}-{2:2}, at: lock_timer_base+0x112/0x240 kernel/time/timer.c:1052 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&base->lock); lock(&base->lock); *** DEADLOCK *** May be due to missing lock nesting notation 5 locks held by kworker/u8:0/10: #0: ffff888070b4e948 ((wq_completion)wg-kex-wg1#3){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3242 [inline] #0: ffff888070b4e948 ((wq_completion)wg-kex-wg1#3){+.+.}-{0:0}, at: process_scheduled_works+0x8e0/0x17c0 kernel/workqueue.c:3348 #1: ffffc900000f7d00 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3243 [inline] #1: ffffc900000f7d00 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_scheduled_works+0x91b/0x17c0 kernel/workqueue.c:3348 #2: ffffffff8e334f00 (rcu_read_lock_bh){....}-{1:2}, at: local_bh_disable include/linux/bottom_half.h:20 [inline] #2: ffffffff8e334f00 (rcu_read_lock_bh){....}-{1:2}, at: rcu_read_lock_bh include/linux/rcupdate.h:833 [inline] #2: ffffffff8e334f00 (rcu_read_lock_bh){....}-{1:2}, at: mod_peer_timer+0x21/0x260 drivers/net/wireguard/timers.c:34 #3: ffff8880b952a718 (&base->lock){-.-.}-{2:2}, at: lock_timer_base+0x112/0x240 kernel/time/timer.c:1052 #4: ffffffff8ea35840 (fill_pool_map-wait-type-override){+.+.}-{3:3}, at: debug_objects_fill_pool+0x80/0x9b0 lib/debugobjects.c:614 stack backtrace: CPU: 1 PID: 10 Comm: kworker/u8:0 Not tainted 6.9.0-rc6-syzkaller-01479-gb1de3c0df7ab #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 Workqueue: wg-kex-wg1 wg_packet_handshake_send_worker Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114 check_deadlock kernel/locking/lockdep.c:3062 [inline] validate_chain+0x15c1/0x58e0 kernel/locking/lockdep.c:3856 __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xd5/0x120 kernel/locking/spinlock.c:162 lock_timer_base+0x112/0x240 kernel/time/timer.c:1052 __mod_timer+0x1ca/0xeb0 kernel/time/timer.c:1133 queue_delayed_work_on+0x15a/0x260 kernel/workqueue.c:2608 queue_delayed_work include/linux/workqueue.h:620 [inline] schedule_delayed_work include/linux/workqueue.h:734 [inline] __debug_check_no_obj_freed lib/debugobjects.c:1012 [inline] debug_check_no_obj_freed+0x14a/0x580 lib/debugobjects.c:1019 free_pages_prepare mm/page_alloc.c:1147 [inline] free_unref_page_prepare+0x322/0xab0 mm/page_alloc.c:2347 free_unref_page+0x37/0x3f0 mm/page_alloc.c:2487 stack_depot_save_flags+0x6f6/0x830 lib/stackdepot.c:673 kasan_save_stack mm/kasan/common.c:48 [inline] kasan_save_track+0x51/0x80 mm/kasan/common.c:68 unpoison_slab_object mm/kasan/common.c:312 [inline] __kasan_slab_alloc+0x66/0x80 mm/kasan/common.c:338 kasan_slab_alloc include/linux/kasan.h:201 [inline] slab_post_alloc_hook mm/slub.c:3798 [inline] slab_alloc_node mm/slub.c:3845 [inline] kmem_cache_alloc+0x174/0x340 mm/slub.c:3852 kmem_cache_zalloc include/linux/slab.h:739 [inline] fill_pool lib/debugobjects.c:168 [inline] debug_objects_fill_pool+0x6c6/0x9b0 lib/debugobjects.c:615 debug_object_activate+0x135/0x510 lib/debugobjects.c:704 debug_timer_activate kernel/time/timer.c:837 [inline] __mod_timer+0x89d/0xeb0 kernel/time/timer.c:1172 mod_peer_timer+0x189/0x260 drivers/net/wireguard/timers.c:37 wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:36 [inline] wg_packet_handshake_send_worker+0x185/0x330 drivers/net/wireguard/send.c:51 process_one_work kernel/workqueue.c:3267 [inline] process_scheduled_works+0xa10/0x17c0 kernel/workqueue.c:3348 worker_thread+0x86d/0xd70 kernel/workqueue.c:3429 kthread+0x2f0/0x390 kernel/kthread.c:388 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244