Re: [syzbot] [scsi?] WARNING in sg_remove_sfp_usercontext

From: Pengfei Xu
Date: Thu Apr 04 2024 - 07:05:35 EST


cc Alexander Wetzel,

I used syzkaller and found the similar problem.

And bisected and found the related commit:
27f58c04a8f4 scsi: sg: Avoid sg device teardown race
Reverted the commit on top of v6.9-rc2, this issue was gone.

All detailed info: https://github.com/xupengfe/syzkaller_logs/tree/main/240401_231147_sg_remove_sfp_usercontext
Bisect log: https://github.com/xupengfe/syzkaller_logs/blob/main/240401_231147_sg_remove_sfp_usercontext/bisect_info.log
Kconfig(make olddefconfig): https://github.com/xupengfe/syzkaller_logs/blob/main/240401_231147_sg_remove_sfp_usercontext/kconfig_origin
v6.9-rc2 bzImage: https://github.com/xupengfe/syzkaller_logs/raw/main/240401_231147_sg_remove_sfp_usercontext/bzImage_v6.9-rc2.tar.gz
Reproduced code: https://github.com/xupengfe/syzkaller_logs/blob/main/240401_231147_sg_remove_sfp_usercontext/repro.c
Syscall reproduced steps: https://github.com/xupengfe/syzkaller_logs/blob/main/240401_231147_sg_remove_sfp_usercontext/repro.prog

I hope it's helpful and if it could be fixed.
Feel free to add the reported-by tag from me.

Best Regards,
Thanks!

On 2024-03-28 at 15:40:33 -0700, syzbot wrote:
> syzbot has found a reproducer for the following issue on:
>
> HEAD commit: a6bd6c933339 Add linux-next specific files for 20240328
> git tree: linux-next
> console+strace: https://syzkaller.appspot.com/x/log.txt?x=17e3ac29180000
> kernel config: https://syzkaller.appspot.com/x/.config?x=b0058bda1436e073
> dashboard link: https://syzkaller.appspot.com/bug?extid=93cdc797590ffc710918
> 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=14c87791180000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1013ac29180000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/7c1618ff7d25/disk-a6bd6c93.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/875519f620fe/vmlinux-a6bd6c93.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/ad92b057fb96/bzImage-a6bd6c93.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+93cdc797590ffc710918@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> ------------[ cut here ]------------
> WARNING: CPU: 1 PID: 24 at drivers/scsi/sg.c:2236 sg_remove_sfp_usercontext+0x3f3/0x530 drivers/scsi/sg.c:2236
> Modules linked in:
> CPU: 1 PID: 24 Comm: kworker/1:0 Not tainted 6.9.0-rc1-next-20240328-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
> Workqueue: events sg_remove_sfp_usercontext
> RIP: 0010:sg_remove_sfp_usercontext+0x3f3/0x530 drivers/scsi/sg.c:2236
> Code: 8b 36 49 8d 96 4d 01 00 00 48 c7 c7 a0 fe 4b 8c 48 c7 c1 c0 07 4c 8c 4d 89 e0 e8 d8 a3 eb ff e9 f7 fe ff ff e8 8e 9d 74 fb 90 <0f> 0b 90 e9 3f ff ff ff e8 80 9d 74 fb 48 8b 44 24 08 48 b9 00 00
> RSP: 0018:ffffc900001e7b48 EFLAGS: 00010293
> RAX: ffffffff8620cd42 RBX: 0000000000000002 RCX: ffff8880176f8000
> RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000001
> RBP: 0000000000008000 R08: ffffffff8620cc7c R09: 1ffff11003fccfaf
> R10: dffffc0000000000 R11: ffffed1003fccfb0 R12: ffff888022830000
> R13: ffff888022831688 R14: ffff88801fe67d78 R15: ffff888022830148
> FS: 0000000000000000(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00000000005fdeb8 CR3: 000000000e134000 CR4: 00000000003506f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> <TASK>
> 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
> kthread+0x2f0/0x390 kernel/kthread.c:388
> ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
> ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243
> </TASK>
>
>
> ---
> 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.