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

From: Lorenzo Bianconi
Date: Mon May 06 2024 - 10:50:22 EST


> syzbot has bisected this issue to:
>
> commit 2b0cfa6e49566c8fa6759734cf821aa6e8271a9e
> Author: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>
> 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: syzbot+f534bd500d914e34b59e@xxxxxxxxxxxxxxxxxxxxxxxxx
> 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 <brouer@xxxxxxxxxx>
Date: Tue Apr 17 16:46:12 2018 +0200

xdp: rhashtable with allocator ID to pointer mapping

Regards,
Lorenzo

Attachment: signature.asc
Description: PGP signature