On Sun, Apr 14, 2019 at 10:00 AM Alban Crequy <alban.crequy@xxxxxxxxx> wrote: > > From: Alban Crequy <alban@xxxxxxxxxx> > > commit f1a2e44a3aec ("bpf: add queue and stack maps") introduced new BPF > helper functions: > - BPF_FUNC_map_push_elem > - BPF_FUNC_map_pop_elem > - BPF_FUNC_map_peek_elem > > but they were made available only for network BPF programs. This patch > makes them available for tracepoint, cgroup and lirc programs. > > Signed-off-by: Alban Crequy <alban@xxxxxxxxxx> > Cc: Mauricio Vasquez B <mauricio.vasquez@xxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx> > --- > drivers/media/rc/bpf-lirc.c | 6 ++++++ > kernel/bpf/cgroup.c | 6 ++++++ > kernel/trace/bpf_trace.c | 6 ++++++ > 3 files changed, 18 insertions(+) > > diff --git a/drivers/media/rc/bpf-lirc.c b/drivers/media/rc/bpf-lirc.c > index 390a722e6211..ee657003c1a1 100644 > --- a/drivers/media/rc/bpf-lirc.c > +++ b/drivers/media/rc/bpf-lirc.c > @@ -97,6 +97,12 @@ lirc_mode2_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) > return &bpf_map_update_elem_proto; > case BPF_FUNC_map_delete_elem: > return &bpf_map_delete_elem_proto; > + case BPF_FUNC_map_push_elem: > + return &bpf_map_push_elem_proto; > + case BPF_FUNC_map_pop_elem: > + return &bpf_map_pop_elem_proto; > + case BPF_FUNC_map_peek_elem: > + return &bpf_map_peek_elem_proto; > case BPF_FUNC_ktime_get_ns: > return &bpf_ktime_get_ns_proto; > case BPF_FUNC_tail_call: > diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c > index e58a6c247f56..fcde0f7b2585 100644 > --- a/kernel/bpf/cgroup.c > +++ b/kernel/bpf/cgroup.c > @@ -713,6 +713,12 @@ cgroup_base_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) > return &bpf_map_update_elem_proto; > case BPF_FUNC_map_delete_elem: > return &bpf_map_delete_elem_proto; > + case BPF_FUNC_map_push_elem: > + return &bpf_map_push_elem_proto; > + case BPF_FUNC_map_pop_elem: > + return &bpf_map_pop_elem_proto; > + case BPF_FUNC_map_peek_elem: > + return &bpf_map_peek_elem_proto; > case BPF_FUNC_get_current_uid_gid: > return &bpf_get_current_uid_gid_proto; > case BPF_FUNC_get_local_storage: > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > index d64c00afceb5..91800be0c8eb 100644 > --- a/kernel/trace/bpf_trace.c > +++ b/kernel/trace/bpf_trace.c > @@ -569,6 +569,12 @@ tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) > return &bpf_map_update_elem_proto; > case BPF_FUNC_map_delete_elem: > return &bpf_map_delete_elem_proto; > + case BPF_FUNC_map_push_elem: > + return &bpf_map_push_elem_proto; > + case BPF_FUNC_map_pop_elem: > + return &bpf_map_pop_elem_proto; > + case BPF_FUNC_map_peek_elem: > + return &bpf_map_peek_elem_proto; > case BPF_FUNC_probe_read: > return &bpf_probe_read_proto; > case BPF_FUNC_ktime_get_ns: > -- > 2.20.1 >