diff options
author | Stanislav Fomichev <sdf@google.com> | 2019-04-25 17:37:23 -0400 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-04-25 17:49:06 -0400 |
commit | 118c8e9ae629d35fa9b3d27a7b9d59298b1b4183 (patch) | |
tree | 7ac43c744fec6cdd282557b4c56d30141dba3161 /kernel/bpf/syscall.c | |
parent | ead442a0f9aaecb4df3eb4055d1e2568b4fc0ae6 (diff) |
bpf: support BPF_PROG_QUERY for BPF_FLOW_DISSECTOR attach_type
target_fd is target namespace. If there is a flow dissector BPF program
attached to that namespace, its (single) id is returned.
v5:
* drop net ref right after rcu unlock (Daniel Borkmann)
v4:
* add missing put_net (Jann Horn)
v3:
* add missing inline to skb_flow_dissector_prog_query static def
(kbuild test robot <lkp@intel.com>)
v2:
* don't sleep in rcu critical section (Jakub Kicinski)
* check input prog_cnt (exit early)
Cc: Jann Horn <jannh@google.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'kernel/bpf/syscall.c')
-rw-r--r-- | kernel/bpf/syscall.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 92c9b8a32b50..b0de49598341 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c | |||
@@ -2009,6 +2009,8 @@ static int bpf_prog_query(const union bpf_attr *attr, | |||
2009 | break; | 2009 | break; |
2010 | case BPF_LIRC_MODE2: | 2010 | case BPF_LIRC_MODE2: |
2011 | return lirc_prog_query(attr, uattr); | 2011 | return lirc_prog_query(attr, uattr); |
2012 | case BPF_FLOW_DISSECTOR: | ||
2013 | return skb_flow_dissector_prog_query(attr, uattr); | ||
2012 | default: | 2014 | default: |
2013 | return -EINVAL; | 2015 | return -EINVAL; |
2014 | } | 2016 | } |