Skip to contentSkip to conversation

bpf: Add missing btf_put to register_btf_id_dtor_kfuncs

PATCH Applied Jiri Olsa 2 participants 2 messages Jan 20, 2023 BPF

lore
Share & tools
lore

Jiri Olsa

author reviewer
#0 lore raw

PATCH v2 1/1 bpf: Add missing btf_put to register_btf_id_dtor_kfuncs

We take the BTF reference before we register dtors and we need to put it back when it's done.

We probably won't se a problem with kernel BTF, but module BTF would stay loaded (because of the extra ref) even when its module is removed.

Cc Kumar Kartikeya Dwivedi <[email protected]>
Fixes 5ce937d613a4 ("bpf: Populate pairs of btf_id and destructor kfunc in btf")

---
v2 changes:
- resend and added Kumar's ack

 kernel/bpf/btf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
kernel/bpf/btf.c +2 -2
index f7dd8af06413..b7017cae6fd1 100644
@@ -7782,9 +7782,9 @@ int register_btf_id_dtor_kfuncs(const struct btf_id_dtor_kfunc *dtors, u32 add_c
 
 	sort(tab->dtors, tab->cnt, sizeof(tab->dtors[0]), btf_id_cmp_func, NULL);
 
-	return 0;
 end:
-	btf_free_dtor_kfunc_tab(btf);
+	if (ret)
+		btf_free_dtor_kfunc_tab(btf);
 	btf_put(btf);
 	return ret;
 }
Signature · 1 line
2.39.0
#1 lore raw
This patch was applied to bpf/bpf.git (master) by Alexei Starovoitov <[email protected]>:

Hello:

This patch was applied to bpf/bpf.git (master)
by Alexei Starovoitov <[email protected]>:

Quoted 8 lines · On Fri, 20 Jan 2023 13:21:48 +0100 you wrote:

We take the BTF reference before we register dtors and we need to put it back when it's done.

We probably won't se a problem with kernel BTF, but module BTF would stay loaded (because of the extra ref) even when its module is removed.

[...]

Here is the summary with links:
- [PATCHv2,bpf] bpf: Add missing btf_put to register_btf_id_dtor_kfuncs

    https://git.kernel.org/bpf/bpf/c/74bc3a5acc82

You are awesome, thank you!

Signature · 2 lines
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html