sched: DL replenish lagged too much
------------[ cut here ]------------
refcount_t: underflow; use-after-free.
WARNING: lib/refcount.c:28 at refcount_warn_saturate+0xb2/0x110 lib/refcount.c:28, CPU#1: syz.3.12/5898
Modules linked in:
CPU: 1 UID: 0 PID: 5898 Comm: syz.3.12 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/09/2026
RIP: 0010:refcount_warn_saturate+0xb2/0x110 lib/refcount.c:28
Code: 54 93 85 0b 67 48 0f b9 3a eb 4a e8 08 f6 0e fd 48 8d 3d 51 93 85 0b 67 48 0f b9 3a eb 37 e8 f5 f5 0e fd 48 8d 3d 4e 93 85 0b <67> 48 0f b9 3a eb 24 e8 e2 f5 0e fd 48 8d 3d 4b 93 85 0b 67 48 0f
RSP: 0018:ffffc90000a08c68 EFLAGS: 00010246
RAX: ffffffff84b73f2b RBX: 0000000000000003 RCX: ffff888028800000
RDX: 0000000000000100 RSI: ffffffff8f122280 RDI: ffffffff903cd280
RBP: ffffc90000a08d70 R08: ffff888028800000 R09: 0000000000000005
R10: 0000000000000004 R11: 0000000000000100 R12: 0000000000000001
R13: 0000000100002741 R14: ffff888053180820 R15: ffff8880531809b8
FS: 00007f020cbec6c0(0000) GS:ffff888125353000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fb6533eb990 CR3: 0000000078a8c000 CR4: 00000000003526f0
Call Trace:
call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748
expire_timers kernel/time/timer.c:1799 [inline]
__run_timers kernel/time/timer.c:2374 [inline]
__run_timer_base+0x652/0x8b0 kernel/time/timer.c:2386
run_timer_base kernel/time/timer.c:2395 [inline]
run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2405
handle_softirqs+0x225/0x840 kernel/softirq.c:622
__do_softirq kernel/softirq.c:656 [inline]
invoke_softirq kernel/softirq.c:496 [inline]
__irq_exit_rcu+0xca/0x220 kernel/softirq.c:735
irq_exit_rcu+0x9/0x30 kernel/softirq.c:752
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1062
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
RIP: 0010:stack_trace_consume_entry+0x1c/0x280 kernel/stacktrace.c:86
Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 55 41 57 41 56 41 55 41 54 53 48 83 ec 18 48 ba 00 00 00 00 00 fc ff df <4c> 8d 47 10 4c 89 c5 48 c1 ed 03 0f b6 44 15 00 84 c0 0f 85 09 01
RSP: 0018:ffffc90005247738 EFLAGS: 00000292
RAX: ffffffff82338432 RBX: ffffc90005247840 RCX: 0000000080000000
RDX: dffffc0000000000 RSI: ffffffff82338432 RDI: ffffc90005247840
RBP: ffffc90005247810 R08: ffffc900052474af R09: 0000000000000000
R10: ffffc900052474a0 R11: ffffffff81b128a0 R12: ffff888028800000
R13: 1ffff110051000bf R14: ffffffff81b128a0 R15: ffffc90005247788
arch_stack_walk+0x10f/0x150 arch/x86/kernel/stacktrace.c:27
stack_trace_save+0xa9/0x100 kernel/stacktrace.c:122
save_stack+0x122/0x230 mm/page_owner.c:165
__reset_page_owner+0x71/0x1f0 mm/page_owner.c:320
reset_page_owner include/linux/page_owner.h:25 [inline]
__free_pages_prepare mm/page_alloc.c:1406 [inline]
__free_frozen_pages+0xc1f/0xd10 mm/page_alloc.c:2950
__slab_free+0x274/0x2c0 mm/slub.c:5672
qlink_free mm/kasan/quarantine.c:163 [inline]
qlist_free_all+0x99/0x100 mm/kasan/quarantine.c:179
kasan_quarantine_reduce+0x148/0x160 mm/kasan/quarantine.c:286
__kasan_slab_alloc+0x22/0x80 mm/kasan/common.c:350
kasan_slab_alloc include/linux/kasan.h:253 [inline]
slab_post_alloc_hook mm/slub.c:4610 [inline]
slab_alloc_node mm/slub.c:4939 [inline]
kmem_cache_alloc_lru_noprof+0x2b4/0x640 mm/slub.c:4958
__d_alloc+0x37/0x6f0 fs/dcache.c:1902
d_alloc_pseudo+0x21/0xc0 fs/dcache.c:2033
alloc_path_pseudo+0x107/0x220 fs/file_table.c:407
alloc_file_pseudo+0xa8/0x1e0 fs/file_table.c:423
sock_alloc_file+0xb8/0x2e0 net/socket.c:532
sock_map_fd net/socket.c:562 [inline]
__sys_socket+0x13f/0x1b0 net/socket.c:1802
__do_sys_socket net/socket.c:1807 [inline]
__se_sys_socket net/socket.c:1805 [inline]
__x64_sys_socket+0x7a/0x90 net/socket.c:1805
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f020bd9ce59
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f020cbec028 EFLAGS: 00000246 ORIG_RAX: 0000000000000029
RAX: ffffffffffffffda RBX: 00007f020c015fa0 RCX: 00007f020bd9ce59
RDX: 000000000000000c RSI: 0000000000000003 RDI: 0000000000000010
RBP: 00007f020be32e6f R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f020c016038 R14: 00007f020c015fa0 R15: 00007ffe3a04ecc8
----------------
Code disassembly (best guess):
0: 54 push %rsp
1: 93 xchg %eax,%ebx
2: 85 0b test %ecx,(%rbx)
4: 67 48 0f b9 3a ud1 (%edx),%rdi
9: eb 4a jmp 0x55
b: e8 08 f6 0e fd call 0xfd0ef618
10: 48 8d 3d 51 93 85 0b lea 0xb859351(%rip),%rdi # 0xb859368
17: 67 48 0f b9 3a ud1 (%edx),%rdi
1c: eb 37 jmp 0x55
1e: e8 f5 f5 0e fd call 0xfd0ef618
23: 48 8d 3d 4e 93 85 0b lea 0xb85934e(%rip),%rdi # 0xb859378
* 2a: 67 48 0f b9 3a ud1 (%edx),%rdi <-- trapping instruction
2f: eb 24 jmp 0x55
31: e8 e2 f5 0e fd call 0xfd0ef618
36: 48 8d 3d 4b 93 85 0b lea 0xb85934b(%rip),%rdi # 0xb859388
3d: 67 addr32
3e: 48 rex.W
3f: 0f .byte 0xf