Re: [syzbot] [block?] general protection fault in blk_mq_free_tags_callback

From: Ming Lei

Date: Mon Sep 22 2025 - 23:28:29 EST


On Tue, Sep 23, 2025 at 6:59 AM Hillf Danton <hdanton@xxxxxxxx> wrote:
>
> > Date: Mon, 22 Sep 2025 13:24:25 -0700 [thread overview]
> > Hello,
> >
> > syzbot found the following issue on:
> >
> > HEAD commit: 846bd2225ec3 Add linux-next specific files for 20250919
> > git tree: linux-next
> > console output: https://syzkaller.appspot.com/x/log.txt?x=13c238e2580000
> > kernel config: https://syzkaller.appspot.com/x/.config?x=135377594f35b576
> > dashboard link: https://syzkaller.appspot.com/bug?extid=5c5d41e80248d610221f
> > compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
> > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=155e427c580000
> > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17bb8142580000
>
> #syz test linux-next master
>
> --- x/block/blk-mq-tag.c
> +++ y/block/blk-mq-tag.c
> @@ -565,6 +565,7 @@ struct blk_mq_tags *blk_mq_init_tags(uns
> if (!tags)
> return NULL;
>
> + INIT_LIST_HEAD(&tags->page_list);
> tags->nr_tags = total_tags;
> tags->nr_reserved_tags = reserved_tags;
> spin_lock_init(&tags->lock);

The initialization is needed, otherwise the unitialized tags->page_list
may be accessed in the error code path of blk_mq_alloc_rq_map().

Thanks,