Re: [syzbot] [mm?] kernel BUG in sg_init_one

Yosry Ahmed
2025-02-12T17:21:01Z

On Mon, Mar 18, 2024 at 2:03 PM Barry Song <21cnbao@gmail.com> wrote:
>
> On Tue, Mar 19, 2024 at 9:52 AM syzbot
> <syzbot+adbc983a1588b7805de3@syzkaller.appspotmail.com> wrote:
> >
> > Hello,
> >
> > syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> > WARNING in __kmap_to_page
> >
> > ------------[ cut here ]------------
> > WARNING: CPU: 0 PID: 3529 at mm/highmem.c:167 __kmap_to_page+0x100/0x194 mm/highmem.c:167
> > Modules linked in:
>
> + Ira
>
> Hi Ira,
>
> I noticed this warning is coming from commit ef6e06b2ef87077.
>
> you have a commit message like
> " Because it is intended to remove kmap_to_page() add a warn on once to
> the kmap checks to flag potential issues early.
> "
>
> Do we have a replacement for kmap_to_page()? The background is that we
> want to pass a highmem buffer to sg_set_page() but we only know its virt
> address.

I am reviving this thread because new zsmalloc changes will make
mappings sleepable, which will allow zswap to drop the memcpy() in
zswap_decompress() -- except for the !virt_addr_valid() case. We can
get rid of that too if we can use kmap_tp_page() in the scatterlist
code.

Ira, could you please answer Barry's question above about
kmap_to_page()? It has been a year and kmap_to_page() is still around.

Thanks.