=============================
WARNING: suspicious RCU usage
syzkaller #0 Not tainted
-----------------------------
net/sched/sch_api.c:304 suspicious rcu_dereference_protected() usage!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
7 locks held by rm/5683:
#0: ffff88807afd0f28 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock_killable include/linux/mmap_lock.h:87 [inline]
#0: ffff88807afd0f28 (&mm->mmap_lock){++++}-{3:3}, at: do_mprotect_pkey+0x173/0x910 mm/mprotect.c:551
#1: ffff88807afd0e90 (&mm->page_table_lock){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
#1: ffff88807afd0e90 (&mm->page_table_lock){+.+.}-{2:2}, at: browse_rb mm/mmap.c:356 [inline]
#1: ffff88807afd0e90 (&mm->page_table_lock){+.+.}-{2:2}, at: validate_mm+0x309/0x950 mm/mmap.c:423
#2: ffffc90000dd0be0 ((&d->timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:45 [inline]
#2: ffffc90000dd0be0 ((&d->timer)){+.-.}-{0:0}, at: call_timer_fn+0xbb/0x530 kernel/time/timer.c:1441
#3: ffffffff8c11c460 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311
#4: ffffffff8c11c4c0 (rcu_read_lock_bh){....}-{1:2}, at: rcu_lock_acquire+0x9/0x30 include/linux/rcupdate.h:312
#5: ffff888078317108 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
#5: ffff888078317108 (&sch->q.lock){+.-.}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3911 [inline]
#5: ffff888078317108 (&sch->q.lock){+.-.}-{2:2}, at: __dev_queue_xmit+0xb8a/0x2ed0 net/core/dev.c:4253
#6: ffffffff8c11c460 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311
stack backtrace:
CPU: 1 PID: 5683 Comm: rm Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Call Trace:
dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106
qdisc_lookup+0xa6/0x650 net/sched/sch_api.c:304
qdisc_tree_reduce_backlog+0x190/0x430 net/sched/sch_api.c:793
fq_codel_enqueue+0x101a/0x1590 net/sched/sch_fq_codel.c:243
qdisc_enqueue include/net/sch_generic.h:832 [inline]
sfb_enqueue+0x9e0/0x17d0 net/sched/sch_sfb.c:405
dev_qdisc_enqueue+0x48/0x210 net/core/dev.c:3852
__dev_xmit_skb net/core/dev.c:3936 [inline]
__dev_queue_xmit+0xd7e/0x2ed0 net/core/dev.c:4253
tipc_l2_send_msg+0x30a/0x3c0 net/tipc/bearer.c:518
tipc_bearer_xmit_skb+0x292/0x3c0 net/tipc/bearer.c:577
tipc_disc_timeout+0x568/0x6b0 net/tipc/discover.c:338
call_timer_fn+0x16c/0x530 kernel/time/timer.c:1451
expire_timers kernel/time/timer.c:1496 [inline]
__run_timers+0x525/0x7c0 kernel/time/timer.c:1767
run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1780
handle_softirqs+0x328/0x820 kernel/softirq.c:576
__do_softirq kernel/softirq.c:610 [inline]
invoke_softirq kernel/softirq.c:450 [inline]
__irq_exit_rcu+0x12f/0x220 kernel/softirq.c:659
irq_exit_rcu+0x5/0x20 kernel/softirq.c:671
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1108 [inline]
sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1108
asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676
RIP: 0010:arch_atomic_read arch/x86/include/asm/atomic.h:29 [inline]
RIP: 0010:rcu_dynticks_curr_cpu_in_eqs kernel/rcu/tree.c:331 [inline]
RIP: 0010:rcu_is_watching+0x56/0xa0 kernel/rcu/tree.c:1123
Code: f0 48 c1 e8 03 42 80 3c 38 00 74 08 4c 89 f7 e8 40 83 58 00 48 c7 c3 c8 b2 03 00 49 03 1e 48 89 d8 48 c1 e8 03 42 0f b6 04 38 <84> c0 75 2b 8b 03 65 ff 0d f5 bf 9e 7e 74 08 24 01 5b 41 5e 41 5f
RSP: 0018:ffffc900034df980 EFLAGS: 00000a06
RAX: 0000000000000000 RBX: ffff8880b913b2c8 RCX: da22af9d97bf7f00
RDX: 0000000000000000 RSI: ffffffff8a59a220 RDI: ffffffff8a59a1e0
RBP: ffffc900034dfab0 R08: dffffc0000000000 R09: fffffbfff1ad31e6
R10: fffffbfff1ad31e6 R11: 1ffffffff1ad31e5 R12: ffff88805af7e758
R13: dffffc0000000000 R14: ffffffff8bbc1828 R15: dffffc0000000000
trace_lock_release include/trace/events/lock.h:58 [inline]
lock_release+0xba/0x870 kernel/locking/lockdep.c:5634
__raw_spin_unlock include/linux/spinlock_api_smp.h:150 [inline]
_raw_spin_unlock+0x12/0x40 kernel/locking/spinlock.c:186
spin_unlock include/linux/spinlock.h:403 [inline]
browse_rb mm/mmap.c:363 [inline]
validate_mm+0x4e2/0x950 mm/mmap.c:423
__vma_adjust+0x1b6c/0x1c20 mm/mmap.c:1029
vma_adjust include/linux/mm.h:2567 [inline]
__split_vma+0x34b/0x410 mm/mmap.c:-1
mprotect_fixup+0x5af/0x800 mm/mprotect.c:483
do_mprotect_pkey+0x657/0x910 mm/mprotect.c:636
__do_sys_mprotect mm/mprotect.c:662 [inline]
__se_sys_mprotect mm/mprotect.c:659 [inline]
__x64_sys_mprotect+0x7c/0x90 mm/mprotect.c:659
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7fa5173d42c7
Code: 89 3d fd 3f 01 00 eb 90 0f 1f 00 f7 d8 89 05 f0 3f 01 00 48 c7 c0 ff ff ff ff eb 91 0f 1f 80 00 00 00 00 b8 0a 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8d 0d c9 3f 01 00 f7 d8 89 01 48 83
RSP: 002b:00007fffcaccc078 EFLAGS: 00000206 ORIG_RAX: 000000000000000a
RAX: ffffffffffffffda RBX: 00007fa5173b05f0 RCX: 00007fa5173d42c7
RDX: 0000000000000001 RSI: 0000000000004000 RDI: 00007fa5172db000
RBP: 00007fffcaccc340 R08: 0000000000000000 R09: 0000000000000000
R10: 00007fa5173b05f0 R11: 0000000000000206 R12: 0000000000000000
R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000
----------------
Code disassembly (best guess):
0: f0 48 c1 e8 03 lock shr $0x3,%rax
5: 42 80 3c 38 00 cmpb $0x0,(%rax,%r15,1)
a: 74 08 je 0x14
c: 4c 89 f7 mov %r14,%rdi
f: e8 40 83 58 00 call 0x588354
14: 48 c7 c3 c8 b2 03 00 mov $0x3b2c8,%rbx
1b: 49 03 1e add (%r14),%rbx
1e: 48 89 d8 mov %rbx,%rax
21: 48 c1 e8 03 shr $0x3,%rax
25: 42 0f b6 04 38 movzbl (%rax,%r15,1),%eax
* 2a: 84 c0 test %al,%al <-- trapping instruction
2c: 75 2b jne 0x59
2e: 8b 03 mov (%rbx),%eax
30: 65 ff 0d f5 bf 9e 7e decl %gs:0x7e9ebff5(%rip) # 0x7e9ec02c
37: 74 08 je 0x41
39: 24 01 and $0x1,%al
3b: 5b pop %rbx
3c: 41 5e pop %r14
3e: 41 5f pop %r15