Re: [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_dev_freespace_init

From: syzbot
Date: Mon Feb 03 2025 - 15:29:41 EST


syzbot has found a reproducer for the following issue on:

HEAD commit: 2014c95afece Linux 6.14-rc1
git tree: upstream
console+strace: https://syzkaller.appspot.com/x/log.txt?x=15526eb0580000
kernel config: https://syzkaller.appspot.com/x/.config?x=aa4f01a8a3baec54
dashboard link: https://syzkaller.appspot.com/bug?extid=aa2232cb0e5de0c0b56f
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1071d724580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=10b1c3df980000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/5f7690b1fcba/disk-2014c95a.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/cf88797ccf0a/vmlinux-2014c95a.xz
kernel image: https://storage.googleapis.com/syzbot-assets/c40073027cde/bzImage-2014c95a.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/243156c15973/mount_2.gz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+aa2232cb0e5de0c0b56f@xxxxxxxxxxxxxxxxxxxxxxxxx

bcachefs (loop0): starting version 1.7: mi_btree_bitmap opts=errors=continue,metadata_checksum=none,data_checksum=none,compression=lz4,nojournal_transaction_names
bcachefs (loop0): initializing new filesystem
bcachefs (loop0): going read-write
bcachefs (loop0): marking superblocks
bcachefs (loop0): initializing freespace
=====================================================
BUG: KMSAN: uninit-value in bch2_alloc_to_v4 fs/bcachefs/alloc_background.h:233 [inline]
BUG: KMSAN: uninit-value in bch2_dev_freespace_init+0x1044/0x1eb0 fs/bcachefs/alloc_background.c:2254
bch2_alloc_to_v4 fs/bcachefs/alloc_background.h:233 [inline]
bch2_dev_freespace_init+0x1044/0x1eb0 fs/bcachefs/alloc_background.c:2254
bch2_fs_freespace_init+0x599/0xb30 fs/bcachefs/alloc_background.c:2326
bch2_fs_initialize+0x1a74/0x2f90 fs/bcachefs/recovery.c:1154
bch2_fs_start+0x792/0xc20 fs/bcachefs/super.c:1031
bch2_fs_get_tree+0x143a/0x2330 fs/bcachefs/fs.c:2203
vfs_get_tree+0xb1/0x5a0 fs/super.c:1814
do_new_mount+0x71f/0x15e0 fs/namespace.c:3560
path_mount+0x742/0x1f10 fs/namespace.c:3887
do_mount fs/namespace.c:3900 [inline]
__do_sys_mount fs/namespace.c:4111 [inline]
__se_sys_mount+0x71f/0x800 fs/namespace.c:4088
__x64_sys_mount+0xe4/0x150 fs/namespace.c:4088
x64_sys_call+0x39bf/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:166
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f

Uninit was created at:
___kmalloc_large_node+0x22c/0x370 mm/slub.c:4249
__kmalloc_large_node_noprof+0x3f/0x1e0 mm/slub.c:4266
__do_kmalloc_node mm/slub.c:4282 [inline]
__kmalloc_node_noprof+0xc96/0x1250 mm/slub.c:4300
__kvmalloc_node_noprof+0xc0/0x2d0 mm/util.c:662
btree_node_data_alloc fs/bcachefs/btree_cache.c:156 [inline]
__bch2_btree_node_mem_alloc+0x2be/0xa80 fs/bcachefs/btree_cache.c:201
bch2_fs_btree_cache_init+0x4f0/0xb60 fs/bcachefs/btree_cache.c:655
bch2_fs_alloc fs/bcachefs/super.c:908 [inline]
bch2_fs_open+0x4b24/0x59c0 fs/bcachefs/super.c:2053
bch2_fs_get_tree+0x986/0x2330 fs/bcachefs/fs.c:2190
vfs_get_tree+0xb1/0x5a0 fs/super.c:1814
do_new_mount+0x71f/0x15e0 fs/namespace.c:3560
path_mount+0x742/0x1f10 fs/namespace.c:3887
do_mount fs/namespace.c:3900 [inline]
__do_sys_mount fs/namespace.c:4111 [inline]
__se_sys_mount+0x71f/0x800 fs/namespace.c:4088
__x64_sys_mount+0xe4/0x150 fs/namespace.c:4088
x64_sys_call+0x39bf/0x3c30 arch/x86/include/generated/asm/syscalls_64.h:166
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xcd/0x1e0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x77/0x7f

CPU: 1 UID: 0 PID: 5778 Comm: syz-executor213 Not tainted 6.14.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
=====================================================


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.