Subject: Re: [syzbot] [bpf?] [net?] WARNING in __xdp_reg_mem_model

From: Lorenzo Bianconi <[email-masked]>
Date: Mon, 6 May 2024 16:49:40 +0200

> syzbot has bisected this issue to:
> 
> commit 2b0cfa6e49566c8fa6759734cf821aa6e8271a9e
> Author: Lorenzo Bianconi <[email-masked]>
> Date:   Mon Feb 12 09:50:54 2024 +0000
> 
>     net: add generic percpu page_pool allocator
> 
> bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=151860d4980000
> start commit:   f99c5f563c17 Merge tag 'nf-24-03-21' of git://git.kernel.o..
> git tree:       net
> final oops:     https://syzkaller.appspot.com/x/report.txt?x=171860d4980000
> console output: https://syzkaller.appspot.com/x/log.txt?x=131860d4980000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=6fb1be60a193d440
> dashboard link: https://syzkaller.appspot.com/bug?extid=f534bd500d914e34b59e
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=17ac600b180000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=1144b797180000
> 
> Reported-by: [email-masked]
> Fixes: 2b0cfa6e4956 ("net: add generic percpu page_pool allocator")
> 
> For information about bisection process see: https://goo.gl/tpsmEJ#bisection
> 

Looking at the code, the root cause of the issue is the WARN(1) in
__xdp_reg_mem_model routine. __mem_id_init_hash_table() can fail just if rht
allocation fails. Do we really need this WARN(1)? It has been introduced in the
commit below:

commit 8d5d88527587516bd58ff0f3810f07c38e65e2be
Author: Jesper Dangaard Brouer <[email-masked]>
Date:   Tue Apr 17 16:46:12 2018 +0200

    xdp: rhashtable with allocator ID to pointer mapping

Regards,
Lorenzo