selftests/bpf: Tweak cgroup kfunc test.
Adjust cgroup kfunc test to dereference RCU protected cgroup pointer as PTR_TRUSTED and pass into KF_TRUSTED_ARGS kfunc. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: David Vernet <void@manifault.com> Link: https://lore.kernel.org/bpf/20230303041446.3630-6-alexei.starovoitov@gmail.com
This commit is contained in:
parent
838bd4ac9a
commit
0047d8343f
@ -61,7 +61,7 @@ int BPF_PROG(test_cgrp_acquire_leave_in_map, struct cgroup *cgrp, const char *pa
|
|||||||
SEC("tp_btf/cgroup_mkdir")
|
SEC("tp_btf/cgroup_mkdir")
|
||||||
int BPF_PROG(test_cgrp_xchg_release, struct cgroup *cgrp, const char *path)
|
int BPF_PROG(test_cgrp_xchg_release, struct cgroup *cgrp, const char *path)
|
||||||
{
|
{
|
||||||
struct cgroup *kptr;
|
struct cgroup *kptr, *cg;
|
||||||
struct __cgrps_kfunc_map_value *v;
|
struct __cgrps_kfunc_map_value *v;
|
||||||
long status;
|
long status;
|
||||||
|
|
||||||
@ -80,6 +80,16 @@ int BPF_PROG(test_cgrp_xchg_release, struct cgroup *cgrp, const char *path)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kptr = v->cgrp;
|
||||||
|
if (!kptr) {
|
||||||
|
err = 4;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cg = bpf_cgroup_ancestor(kptr, 1);
|
||||||
|
if (cg) /* verifier only check */
|
||||||
|
bpf_cgroup_release(cg);
|
||||||
|
|
||||||
kptr = bpf_kptr_xchg(&v->cgrp, NULL);
|
kptr = bpf_kptr_xchg(&v->cgrp, NULL);
|
||||||
if (!kptr) {
|
if (!kptr) {
|
||||||
err = 3;
|
err = 3;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user