==================================================================
BUG: KASAN: out-of-bounds in instrument_atomic_read_write include/linux/instrumented.h:102 [inline]
BUG: KASAN: out-of-bounds in atomic_dec include/linux/atomic/atomic-instrumented.h:257 [inline]
BUG: KASAN: out-of-bounds in put_bh include/linux/buffer_head.h:320 [inline]
BUG: KASAN: out-of-bounds in end_buffer_read_sync+0xbd/0xd0 fs/buffer.c:160
Write of size 4 at addr ffffc9000525f820 by task ksoftirqd/0/15
CPU: 0 PID: 15 Comm: ksoftirqd/0 Not tainted 6.1.128-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106
print_address_description mm/kasan/report.c:316 [inline]
print_report+0x15f/0x4f0 mm/kasan/report.c:427
kasan_report+0x136/0x160 mm/kasan/report.c:531
kasan_check_range+0x27f/0x290 mm/kasan/generic.c:189
instrument_atomic_read_write include/linux/instrumented.h:102 [inline]
atomic_dec include/linux/atomic/atomic-instrumented.h:257 [inline]
put_bh include/linux/buffer_head.h:320 [inline]
end_buffer_read_sync+0xbd/0xd0 fs/buffer.c:160
end_bio_bh_io_sync+0xb3/0x110 fs/buffer.c:2655
req_bio_endio block/blk-mq.c:780 [inline]
blk_update_request+0x53b/0x1010 block/blk-mq.c:925
blk_mq_end_request+0x3a/0x70 block/blk-mq.c:1050
blk_complete_reqs block/blk-mq.c:1130 [inline]
blk_done_softirq+0xf8/0x140 block/blk-mq.c:1135
handle_softirqs+0x2ee/0xa40 kernel/softirq.c:578
__do_softirq kernel/softirq.c:612 [inline]
invoke_softirq kernel/softirq.c:452 [inline]
__irq_exit_rcu+0x157/0x240 kernel/softirq.c:661
irq_exit_rcu+0x5/0x20 kernel/softirq.c:673
instr_sysvec_call_function_single arch/x86/kernel/smp.c:262 [inline]
sysvec_call_function_single+0x9d/0xc0 arch/x86/kernel/smp.c:262
asm_sysvec_call_function_single+0x16/0x20 arch/x86/include/asm/idtentry.h:699
RIP: 0010:to_kthread kernel/kthread.c:75 [inline]
RIP: 0010:__kthread_should_park kernel/kthread.c:163 [inline]
RIP: 0010:kthread_should_park+0x30/0xf0 kernel/kthread.c:180
Code: 54 53 49 bf 00 00 00 00 00 fc ff df e8 99 a6 2e 00 65 4c 8b 25 e1 82 a6 7e 4d 8d 74 24 2c 4c 89 f0 48 c1 e8 03 42 0f b6 04 38 <84> c0 0f 85 8b 00 00 00 41 8b 2e bb 00 00 20 00 be 00 00 20 00 21
RSP: 0018:ffffc90000147e48 EFLAGS: 00000a03
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff888018c23b80
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff888018c252e8 R08: ffffffff815beb2b R09: ffffed1002fe5f81
R10: 0000000000000000 R11: dffffc0000000001 R12: ffff888018c23b80
R13: ffffffff8d1d2040 R14: ffff888018c23bac R15: dffffc0000000000
smpboot_thread_fn+0x10e/0xa30 kernel/smpboot.c:124
kthread+0x28d/0x320 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
The buggy address belongs to the virtual mapping at
[ffffc90005258000, ffffc90005261000) created by:
copy_process+0x637/0x40a0 kernel/fork.c:2096
The buggy address belongs to the physical page:
page:ffffea000155b180 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x556c6
memcg:ffff888054da3c02
flags: 0xfff00000000000(node=0|zone=1|lastcpupid=0x7ff)
raw: 00fff00000000000 0000000000000000 dead000000000122 0000000000000000
raw: 0000000000000000 0000000000000000 00000001ffffffff ffff888054da3c02
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Unmovable, gfp_mask 0x102dc2(GFP_HIGHUSER|__GFP_NOWARN|__GFP_ZERO), pid 4501, tgid 4501 (syz.4.77), ts 93187534742, free_ts 92582973270
set_page_owner include/linux/page_owner.h:31 [inline]
post_alloc_hook+0x18d/0x1b0 mm/page_alloc.c:2532
prep_new_page mm/page_alloc.c:2539 [inline]
get_page_from_freelist+0x3731/0x38d0 mm/page_alloc.c:4328
__alloc_pages+0x28d/0x770 mm/page_alloc.c:5605
vm_area_alloc_pages mm/vmalloc.c:2994 [inline]
__vmalloc_area_node mm/vmalloc.c:3063 [inline]
__vmalloc_node_range+0x9b3/0x14b0 mm/vmalloc.c:3235
alloc_thread_stack_node kernel/fork.c:312 [inline]
dup_task_struct+0x3e5/0x6d0 kernel/fork.c:989
copy_process+0x637/0x40a0 kernel/fork.c:2096
kernel_clone+0x222/0x920 kernel/fork.c:2681
__do_sys_clone3 kernel/fork.c:2980 [inline]
__se_sys_clone3+0x373/0x410 kernel/fork.c:2964
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x68/0xd2
page last free stack trace:
reset_page_owner include/linux/page_owner.h:24 [inline]
free_pages_prepare mm/page_alloc.c:1459 [inline]
free_pcp_prepare mm/page_alloc.c:1509 [inline]
free_unref_page_prepare+0x12a6/0x15b0 mm/page_alloc.c:3384
free_unref_page_list+0x663/0x900 mm/page_alloc.c:3525
release_pages+0x24c4/0x27a0 mm/swap.c:1035
tlb_batch_pages_flush mm/mmu_gather.c:59 [inline]
tlb_flush_mmu_free mm/mmu_gather.c:254 [inline]
tlb_flush_mmu+0xfc/0x210 mm/mmu_gather.c:261
tlb_finish_mmu+0xce/0x1f0 mm/mmu_gather.c:361
exit_mmap+0x3b3/0x980 mm/mmap.c:3250
__mmput+0x115/0x3c0 kernel/fork.c:1200
exit_mm+0x226/0x300 kernel/exit.c:565
do_exit+0x9f1/0x26a0 kernel/exit.c:858
do_group_exit+0x202/0x2b0 kernel/exit.c:1021
get_signal+0x16cb/0x17a0 kernel/signal.c:2871
arch_do_signal_or_restart+0xb0/0x1a10 arch/x86/kernel/signal.c:871
exit_to_user_mode_loop+0x6a/0x100 kernel/entry/common.c:174
exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:210
__syscall_exit_to_user_mode_work kernel/entry/common.c:292 [inline]
syscall_exit_to_user_mode+0x60/0x270 kernel/entry/common.c:303
do_syscall_64+0x47/0xb0 arch/x86/entry/common.c:87
Memory state around the buggy address:
ffffc9000525f700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffffc9000525f780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffffc9000525f800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
ffffc9000525f880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffffc9000525f900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================
----------------
Code disassembly (best guess):
0: 54 push %rsp
1: 53 push %rbx
2: 49 bf 00 00 00 00 00 movabs $0xdffffc0000000000,%r15
9: fc ff df
c: e8 99 a6 2e 00 call 0x2ea6aa
11: 65 4c 8b 25 e1 82 a6 mov %gs:0x7ea682e1(%rip),%r12 # 0x7ea682fa
18: 7e
19: 4d 8d 74 24 2c lea 0x2c(%r12),%r14
1e: 4c 89 f0 mov %r14,%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: 0f 85 8b 00 00 00 jne 0xbd
32: 41 8b 2e mov (%r14),%ebp
35: bb 00 00 20 00 mov $0x200000,%ebx
3a: be 00 00 20 00 mov $0x200000,%esi
3f: 21 .byte 0x21