============================= WARNING: suspicious RCU usage 6.1.90-syzkaller #0 Not tainted ----------------------------- net/bridge/br_private.h:1499 suspicious rcu_dereference_protected() usage! other info that might help us debug this: rcu_scheduler_active = 2, debug_locks = 1 7 locks held by syz-executor.0/4246: #0: ffff0000d668c348 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock_killable include/linux/mmap_lock.h:87 [inline] #0: ffff0000d668c348 (&mm->mmap_lock){++++}-{3:3}, at: dup_mmap kernel/fork.c:593 [inline] #0: ffff0000d668c348 (&mm->mmap_lock){++++}-{3:3}, at: dup_mm kernel/fork.c:1540 [inline] #0: ffff0000d668c348 (&mm->mmap_lock){++++}-{3:3}, at: copy_mm+0x314/0x13f0 kernel/fork.c:1589 #1: ffff0000c6c00d48 (&mm->mmap_lock/1){+.+.}-{3:3}, at: mmap_write_lock_nested include/linux/mmap_lock.h:78 [inline] #1: ffff0000c6c00d48 (&mm->mmap_lock/1){+.+.}-{3:3}, at: dup_mmap kernel/fork.c:602 [inline] #1: ffff0000c6c00d48 (&mm->mmap_lock/1){+.+.}-{3:3}, at: dup_mm kernel/fork.c:1540 [inline] #1: ffff0000c6c00d48 (&mm->mmap_lock/1){+.+.}-{3:3}, at: copy_mm+0x3cc/0x13f0 kernel/fork.c:1589 #2: ffff0000d2582138 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] #2: ffff0000d2582138 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: copy_pte_range mm/memory.c:1042 [inline] #2: ffff0000d2582138 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: copy_pmd_range mm/memory.c:1177 [inline] #2: ffff0000d2582138 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: copy_pud_range mm/memory.c:1214 [inline] #2: ffff0000d2582138 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: copy_p4d_range mm/memory.c:1238 [inline] #2: ffff0000d2582138 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: copy_page_range+0xac0/0x38d0 mm/memory.c:1336 #3: ffff0000cf864738 (ptlock_ptr(page)#2/1){+.+.}-{2:2}, at: copy_pte_range mm/memory.c:1049 [inline] #3: ffff0000cf864738 (ptlock_ptr(page)#2/1){+.+.}-{2:2}, at: copy_pmd_range mm/memory.c:1177 [inline] #3: ffff0000cf864738 (ptlock_ptr(page)#2/1){+.+.}-{2:2}, at: copy_pud_range mm/memory.c:1214 [inline] #3: ffff0000cf864738 (ptlock_ptr(page)#2/1){+.+.}-{2:2}, at: copy_p4d_range mm/memory.c:1238 [inline] #3: ffff0000cf864738 (ptlock_ptr(page)#2/1){+.+.}-{2:2}, at: copy_page_range+0xb70/0x38d0 mm/memory.c:1336 #4: ffff800015a14ca0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x18/0x54 include/linux/rcupdate.h:349 #5: ffff800008017c80 ((&p->forward_delay_timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:41 [inline] #5: ffff800008017c80 ((&p->forward_delay_timer)){+.-.}-{0:0}, at: call_timer_fn+0xd0/0xa1c kernel/time/timer.c:1494 #6: ffff0000f2e28c98 (&br->lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] #6: ffff0000f2e28c98 (&br->lock){+.-.}-{2:2}, at: br_forward_delay_timer_expired+0x58/0x404 net/bridge/br_stp_timer.c:86 stack backtrace: CPU: 1 PID: 4246 Comm: syz-executor.0 Not tainted 6.1.90-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 Call trace: dump_backtrace+0x1c8/0x1f4 arch/arm64/kernel/stacktrace.c:158 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165 __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106 dump_stack+0x1c/0x58 lib/dump_stack.c:113 lockdep_rcu_suspicious+0x260/0x464 kernel/locking/lockdep.c:6592 nbp_vlan_group net/bridge/br_private.h:1499 [inline] br_mst_set_state+0x1b8/0x5b0 net/bridge/br_mst.c:105 br_set_state+0x21c/0x670 net/bridge/br_stp.c:47 br_forward_delay_timer_expired+0x164/0x404 net/bridge/br_stp_timer.c:88 call_timer_fn+0x1c0/0xa1c kernel/time/timer.c:1504 expire_timers kernel/time/timer.c:1549 [inline] __run_timers+0x554/0x718 kernel/time/timer.c:1820 run_timer_softirq+0x7c/0x114 kernel/time/timer.c:1833 __do_softirq+0x314/0xe38 kernel/softirq.c:571 ____do_softirq+0x14/0x20 arch/arm64/kernel/irq.c:80 call_on_irq_stack+0x24/0x4c arch/arm64/kernel/entry.S:893 do_softirq_own_stack+0x20/0x2c arch/arm64/kernel/irq.c:85 invoke_softirq kernel/softirq.c:452 [inline] __irq_exit_rcu+0x264/0x4d4 kernel/softirq.c:650 irq_exit_rcu+0x14/0x84 kernel/softirq.c:662 __el1_irq arch/arm64/kernel/entry-common.c:472 [inline] el1_interrupt+0x38/0x68 arch/arm64/kernel/entry-common.c:486 el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:491 el1h_64_irq+0x64/0x68 arch/arm64/kernel/entry.S:581 arch_local_irq_restore arch/arm64/include/asm/irqflags.h:122 [inline] lock_acquire+0x2ac/0x7cc kernel/locking/lockdep.c:5665 rcu_lock_acquire+0x44/0x54 include/linux/rcupdate.h:350 rcu_read_lock include/linux/rcupdate.h:791 [inline] page_ext_get+0x2c/0x2d0 mm/page_ext.c:157 page_table_check_set+0x9c/0x47c mm/page_table_check.c:109 __page_table_check_pte_set+0x110/0x134 mm/page_table_check.c:199 page_table_check_pte_set include/linux/page_table_check.h:83 [inline] set_pte_at arch/arm64/include/asm/pgtable.h:357 [inline] copy_present_pte mm/memory.c:1000 [inline] copy_pte_range mm/memory.c:1091 [inline] copy_pmd_range mm/memory.c:1177 [inline] copy_pud_range mm/memory.c:1214 [inline] copy_p4d_range mm/memory.c:1238 [inline] copy_page_range+0x28b0/0x38d0 mm/memory.c:1336 dup_mmap kernel/fork.c:699 [inline] dup_mm kernel/fork.c:1540 [inline] copy_mm+0xc2c/0x13f0 kernel/fork.c:1589 copy_process+0x1798/0x38d0 kernel/fork.c:2267 kernel_clone+0x1d8/0x98c kernel/fork.c:2682 __do_sys_clone kernel/fork.c:2823 [inline] __se_sys_clone kernel/fork.c:2791 [inline] __arm64_sys_clone+0x1e0/0x234 kernel/fork.c:2791 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline] invoke_syscall+0x98/0x2c0 arch/arm64/kernel/syscall.c:52 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142 do_el0_svc+0x64/0x218 arch/arm64/kernel/syscall.c:206 el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585 bridge0: port 1(bridge_slave_0) entered learning state bridge0: port 2(bridge_slave_1) entered learning state