[syzbot] [erofs?] BUG: using smp_processor_id() in preemptible code in z_erofs_get_gbuf

From: syzbot
Date: Mon Apr 08 2024 - 14:23:49 EST


Hello,

syzbot found the following issue on:

HEAD commit: 2b3d5988ae2c Add linux-next specific files for 20240404
git tree: linux-next
console+strace: https://syzkaller.appspot.com/x/log.txt?x=150f9d29180000
kernel config: https://syzkaller.appspot.com/x/.config?x=9c48fd2523cdee5e
dashboard link: https://syzkaller.appspot.com/bug?extid=27cc650ef45b379dfe5a
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=10a60955180000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=10d08115180000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/136270ed2c7b/disk-2b3d5988.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/466d2f7c1952/vmlinux-2b3d5988.xz
kernel image: https://storage.googleapis.com/syzbot-assets/7dfaf3959891/bzImage-2b3d5988.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/2026b83172a2/mount_0.gz

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

BUG: using smp_processor_id() in preemptible [00000000] code: kworker/u9:1/4483
caller is z_erofs_gbuf_id fs/erofs/zutil.c:31 [inline]
caller is z_erofs_get_gbuf+0x2c/0xd0 fs/erofs/zutil.c:39
CPU: 0 PID: 4483 Comm: kworker/u9:1 Not tainted 6.9.0-rc2-next-20240404-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Workqueue: erofs_worker z_erofs_decompressqueue_work
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
check_preemption_disabled+0x10e/0x120 lib/smp_processor_id.c:49
z_erofs_gbuf_id fs/erofs/zutil.c:31 [inline]
z_erofs_get_gbuf+0x2c/0xd0 fs/erofs/zutil.c:39
z_erofs_lz4_handle_overlap fs/erofs/decompressor.c:162 [inline]
z_erofs_lz4_decompress_mem fs/erofs/decompressor.c:234 [inline]
z_erofs_lz4_decompress+0xe42/0x17b0 fs/erofs/decompressor.c:307
z_erofs_decompress_pcluster fs/erofs/zdata.c:1260 [inline]
z_erofs_decompress_queue+0x1e30/0x3960 fs/erofs/zdata.c:1345
z_erofs_decompressqueue_work+0x99/0xe0 fs/erofs/zdata.c:1360
process_one_work kernel/workqueue.c:3218 [inline]
process_scheduled_works+0xa2c/0x1830 kernel/workqueue.c:3299
worker_thread+0x86d/0xd70 kernel/workqueue.c:3380


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxx.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

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.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup