|
@@ -95,7 +95,7 @@ static int compute_effective_progs(struct cgroup *cgrp,
|
|
|
enum bpf_attach_type type,
|
|
|
struct bpf_prog_array __rcu **array)
|
|
|
{
|
|
|
- struct bpf_prog_array __rcu *progs;
|
|
|
+ struct bpf_prog_array *progs;
|
|
|
struct bpf_prog_list *pl;
|
|
|
struct cgroup *p = cgrp;
|
|
|
int cnt = 0;
|
|
@@ -120,13 +120,12 @@ static int compute_effective_progs(struct cgroup *cgrp,
|
|
|
&p->bpf.progs[type], node) {
|
|
|
if (!pl->prog)
|
|
|
continue;
|
|
|
- rcu_dereference_protected(progs, 1)->
|
|
|
- progs[cnt++] = pl->prog;
|
|
|
+ progs->progs[cnt++] = pl->prog;
|
|
|
}
|
|
|
p = cgroup_parent(p);
|
|
|
} while (p);
|
|
|
|
|
|
- *array = progs;
|
|
|
+ rcu_assign_pointer(*array, progs);
|
|
|
return 0;
|
|
|
}
|
|
|
|