Commit 2fcc6081 authored by David Vernet's avatar David Vernet Committed by Alexei Starovoitov
Browse files

bpf: Don't use idx variable when registering kfunc dtors



In commit fda01efc ("bpf: Enable cgroups to be used as kptrs"), I
added an 'int idx' variable to kfunc_init() which was meant to
dynamically set the index of the btf id entries of the
'generic_dtor_ids' array. This was done to make the code slightly less
brittle as the struct cgroup * kptr kfuncs such as bpf_cgroup_aquire()
are compiled out if CONFIG_CGROUPS is not defined. This, however, causes
an lkp build warning:

>> kernel/bpf/helpers.c:2005:40: warning: multiple unsequenced
   modifications to 'idx' [-Wunsequenced]
	.btf_id       = generic_dtor_ids[idx++],

Fix the warning by just hard-coding the indices.

Fixes: fda01efc ("bpf: Enable cgroups to be used as kptrs")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarDavid Vernet <void@manifault.com>
Acked-by: default avatarYonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/r/20221123135253.637525-1-void@manifault.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 8a2162a9
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -2019,16 +2019,16 @@ static const struct btf_kfunc_id_set common_kfunc_set = {

static int __init kfunc_init(void)
{
	int ret, idx = 0;
	int ret;
	const struct btf_id_dtor_kfunc generic_dtors[] = {
		{
			.btf_id       = generic_dtor_ids[idx++],
			.kfunc_btf_id = generic_dtor_ids[idx++]
			.btf_id       = generic_dtor_ids[0],
			.kfunc_btf_id = generic_dtor_ids[1]
		},
#ifdef CONFIG_CGROUPS
		{
			.btf_id       = generic_dtor_ids[idx++],
			.kfunc_btf_id = generic_dtor_ids[idx++]
			.btf_id       = generic_dtor_ids[2],
			.kfunc_btf_id = generic_dtor_ids[3]
		},
#endif
	};