bpf: Keep module's btf_data_size intact after load
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 3 Dec 2020 20:46:22 +0000 (12:46 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 4 Dec 2020 01:38:20 +0000 (17:38 -0800)
Having real btf_data_size stored in struct module is benefitial to quickly
determine which kernel modules have associated BTF object and which don't.
There is no harm in keeping this info, as opposed to keeping invalid pointer.

Fixes: 607c543f939d ("bpf: Sanitize BTF data pointer after module is loaded")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20201203204634.1325171-3-andrii@kernel.org
kernel/module.c

index 18f259d..c3a9e97 100644 (file)
@@ -3712,7 +3712,6 @@ static noinline int do_init_module(struct module *mod)
 #ifdef CONFIG_DEBUG_INFO_BTF_MODULES
        /* .BTF is not SHF_ALLOC and will get removed, so sanitize pointer */
        mod->btf_data = NULL;
-       mod->btf_data_size = 0;
 #endif
        /*
         * We want to free module_init, but be aware that kallsyms may be