]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
bpf: fix nested bpf tracepoints with per-cpu data
authorMatt Mullins <mmullins@fb.com>
Tue, 11 Jun 2019 21:53:04 +0000 (14:53 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 15 Jun 2019 23:33:35 +0000 (16:33 -0700)
commit9594dc3c7e71b9f52bee1d7852eb3d4e3aea9e99
treea11f3e8496e5785641b067ba4cf79c86c78289d7
parent85749218e3a6a1ab4fb3c698394f40f07b80be5e
bpf: fix nested bpf tracepoints with per-cpu data

BPF_PROG_TYPE_RAW_TRACEPOINTs can be executed nested on the same CPU, as
they do not increment bpf_prog_active while executing.

This enables three levels of nesting, to support
  - a kprobe or raw tp or perf event,
  - another one of the above that irq context happens to call, and
  - another one in nmi context
(at most one of which may be a kprobe or perf event).

Fixes: 20b9d7ac4852 ("bpf: avoid excessive stack usage for perf_sample_data")
Signed-off-by: Matt Mullins <mmullins@fb.com>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/trace/bpf_trace.c