Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
BUG: corrupted list in __prepare_to_swait
R13: 0000000020000100 R14: 00007f53142eefe0 R15: 0000000020010880
</TASK>
---[ end trace c4d90f07b9fa39ce ]---
list_add corruption. prev is NULL.
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:24!
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 461 Comm: syz-executor.5 Tainted: G W 5.15.72-syzkaller-04916-g43eb03f7ce81 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
RIP: 0010:__list_add_valid+0xbc/0x100 lib/list_debug.c:23
Code: c0 74 ed 48 c7 c7 60 c8 66 85 4c 89 fe 4c 89 e2 4c 89 f1 31 c0 e8 41 22 57 02 0f 0b 48 c7 c7 60 c6 66 85 31 c0 e8 31 22 57 02 <0f> 0b 48 c7 c7 00 c7 66 85 31 c0 e8 21 22 57 02 0f 0b 48 c7 c7 60
RSP: 0018:ffffc90000fa78e0 EFLAGS: 00010046
RAX: 0000000000000022 RBX: 1ffff920001f4f3d RCX: d0ad1b9160117e00
RDX: 0000000000000000 RSI: 0000000080000001 RDI: 0000000000000000
RBP: ffffc90000fa7908 R08: ffffffff81572d19 R09: ffffed103ee465d0
R10: ffffed103ee465d0 R11: 1ffff1103ee465cf R12: ffffc90000fa79e8
R13: 1ffff11024c3262c R14: ffffc90000fa79e0 R15: ffff888126193160
FS: 00007f53142ef700(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005555573553b8 CR3: 000000011ffeb000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
__list_add include/linux/list.h:67 [inline]
list_add_tail include/linux/list.h:100 [inline]
__prepare_to_swait+0xad/0x140 kernel/sched/swait.c:89
do_wait_for_common kernel/sched/completion.c:82 [inline]
__wait_for_common kernel/sched/completion.c:106 [inline]
wait_for_common+0x257/0x430 kernel/sched/completion.c:117
wait_for_completion+0x18/0x20 kernel/sched/completion.c:138
erofs_unregister_sysfs+0x5e/0x70 fs/erofs/sysfs.c:209
erofs_put_super+0x46/0xa0 fs/erofs/super.c:815
generic_shutdown_super+0x14f/0x2d0 fs/super.c:465
kill_block_super+0x80/0xe0 fs/super.c:1395
erofs_kill_sb+0x66/0x130 fs/erofs/super.c:796
deactivate_locked_super+0xb0/0x100 fs/super.c:335
get_tree_bdev+0x437/0x640 fs/super.c:1295
erofs_fc_get_tree+0x1c/0x20 fs/erofs/super.c:708
vfs_get_tree+0x88/0x290 fs/super.c:1498
do_new_mount+0x289/0xad0 fs/namespace.c:2994
path_mount+0x60b/0x1050 fs/namespace.c:3324
do_mount fs/namespace.c:3337 [inline]
__do_sys_mount fs/namespace.c:3545 [inline]
__se_sys_mount+0x2d2/0x3c0 fs/namespace.c:3522
__x64_sys_mount+0xbf/0xd0 fs/namespace.c:3522
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7f531437bada
Code: 48 c7 c2 b8 ff ff ff f7 d8 64 89 02 b8 ff ff ff ff eb d2 e8 b8 04 00 00 0f 1f 84 00 00 00 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f53142eef88 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0000000020000200 RCX: 00007f531437bada
RDX: 0000000020000000 RSI: 0000000020000100 RDI: 00007f53142eefe0
RBP: 00007f53142ef020 R08: 00007f53142ef020 R09: 0000000020000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000020000000
R13: 0000000020000100 R14: 00007f53142eefe0 R15: 0000000020010880
</TASK>
Modules linked in:
---[ end trace c4d90f07b9fa39d0 ]---
RIP: 0010:__list_add_valid+0xbc/0x100 lib/list_debug.c:23
Code: c0 74 ed 48 c7 c7 60 c8 66 85 4c 89 fe 4c 89 e2 4c 89 f1 31 c0 e8 41 22 57 02 0f 0b 48 c7 c7 60 c6 66 85 31 c0 e8 31 22 57 02 <0f> 0b 48 c7 c7 00 c7 66 85 31 c0 e8 21 22 57 02 0f 0b 48 c7 c7 60
RSP: 0018:ffffc90000fa78e0 EFLAGS: 00010046
RAX: 0000000000000022 RBX: 1ffff920001f4f3d RCX: d0ad1b9160117e00
RDX: 0000000000000000 RSI: 0000000080000001 RDI: 0000000000000000
RBP: ffffc90000fa7908 R08: ffffffff81572d19 R09: ffffed103ee465d0
R10: ffffed103ee465d0 R11: 1ffff1103ee465cf R12: ffffc90000fa79e8
R13: 1ffff11024c3262c R14: ffffc90000fa79e0 R15: ffff888126193160
FS: 00007f53142ef700(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005555573553b8 CR3: 000000011ffeb000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Tested on:
commit: 43eb03f7 Merge 5.15.72 into android13-5.15-lts
git tree: android13-5.15-lts
console output:
https://syzkaller.appspot.com/x/log.txt?x=124982aa880000
kernel config:
https://syzkaller.appspot.com/x/.config?x=841f73716da4a8a0
dashboard link:
https://syzkaller.appspot.com/bug?extid=4d15e77deaec58116d46
compiler: Debian clang version 13.0.1-++20220126092033+75e33f71c2da-1~exp1~20220126212112.63, GNU ld (GNU Binutils for Debian) 2.35.2
Note: no patches were applied.