diff options
author | Teng Qin <qinteng@fb.com> | 2018-04-28 23:39:29 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-04-29 09:18:04 -0700 |
commit | 7ef3771205302a71a8bb4a2286ef98e5cade5d1a (patch) | |
tree | e897e3fe2ecaf348d4780de5dd0227f802dcd48f | |
parent | fcf85729d8efed1c756842ddb27e84f5f4ebc501 (diff) | |
download | linux-stable-7ef3771205302a71a8bb4a2286ef98e5cade5d1a.tar.gz linux-stable-7ef3771205302a71a8bb4a2286ef98e5cade5d1a.tar.bz2 linux-stable-7ef3771205302a71a8bb4a2286ef98e5cade5d1a.zip |
bpf: Allow bpf_current_task_under_cgroup in interrupt
Currently, the bpf_current_task_under_cgroup helper has a check where if
the BPF program is running in_interrupt(), it will return -EINVAL. This
prevents the helper to be used in many useful scenarios, particularly
BPF programs attached to Perf Events.
This commit removes the check. Tested a few NMI (Perf Event) and some
softirq context, the helper returns the correct result.
Signed-off-by: Teng Qin <qinteng@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r-- | kernel/trace/bpf_trace.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index 46d866e9937c..ce2cbbff27e4 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -475,8 +475,6 @@ BPF_CALL_2(bpf_current_task_under_cgroup, struct bpf_map *, map, u32, idx) struct bpf_array *array = container_of(map, struct bpf_array, map); struct cgroup *cgrp; - if (unlikely(in_interrupt())) - return -EINVAL; if (unlikely(idx >= array->map.max_entries)) return -E2BIG; |