Re: [PATCH bpf-next v4 07/12] bpf: keep module BTF until the vmlinux BTF is available
From: bot+bpf-ci
Date: Thu Oct 01 2026 - 19:47:15 EST
> bpf: keep module BTF until the vmlinux BTF is available
TL;DR: Nits only: in kernel/bpf/btf.c, btf_drop_deferred_vmlinux_regs() could
reuse the new btf_free_deferred_regs() helper, and the module and vmlinux
apply loops look duplicated. No bug.
> diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
> index 96241dc62dc3..4d51fb212218 100644
> --- a/kernel/bpf/btf.c
> +++ b/kernel/bpf/btf.c
[ ... ]
> @@ -10967,6 +11252,16 @@ static void btf_apply_deferred_regs(struct btf *btf, struct list_head *regs)
> }
> }
>
> +static void btf_free_deferred_regs(struct list_head *regs)
> +{
> + struct btf_deferred_reg *reg, *tmp;
> +
> + list_for_each_entry_safe(reg, tmp, regs, list) {
> + list_del(®->list);
> + btf_free_deferred_reg(reg);
> + }
> +}
> +
This isn't a bug, but could btf_drop_deferred_vmlinux_regs() call the new
btf_free_deferred_regs(®s) instead of keeping its own copy of the loop?
The tail of btf_drop_deferred_vmlinux_regs() still open-codes the same
thing on its local list:
list_for_each_entry_safe(reg, tmp, ®s, list) {
list_del(®->list);
btf_free_deferred_reg(reg);
}
The splice / unlock / apply / relock loop in btf_module_apply_regs() is
also the same as the one in btf_apply_deferred_vmlinux_regs(), just with a
different mutex.
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/36938681172