aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/bpf_lirc.h
diff options
context:
space:
mode:
authorSean Young <sean@mess.org>2018-06-19 00:04:24 +0100
committerDaniel Borkmann <daniel@iogearbox.net>2018-06-26 11:28:38 +0200
commitfdb5c4531c1e0e50e609df83f736b6f3a02896e2 (patch)
treec2ca0792e966f0bfb00f08d4df3401f2d68d52a9 /include/linux/bpf_lirc.h
parentnfp: bpf: don't stop offload if replace failed (diff)
downloadwireguard-linux-fdb5c4531c1e0e50e609df83f736b6f3a02896e2.tar.xz
wireguard-linux-fdb5c4531c1e0e50e609df83f736b6f3a02896e2.zip
bpf: fix attach type BPF_LIRC_MODE2 dependency wrt CONFIG_CGROUP_BPF
If the kernel is compiled with CONFIG_CGROUP_BPF not enabled, it is not possible to attach, detach or query IR BPF programs to /dev/lircN devices, making them impossible to use. For embedded devices, it should be possible to use IR decoding without cgroups or CONFIG_CGROUP_BPF enabled. This change requires some refactoring, since bpf_prog_{attach,detach,query} functions are now always compiled, but their code paths for cgroups need moving out. Rather than a #ifdef CONFIG_CGROUP_BPF in kernel/bpf/syscall.c, moving them to kernel/bpf/cgroup.c and kernel/bpf/sockmap.c does not require #ifdefs since that is already conditionally compiled. Fixes: f4364dcfc86d ("media: rc: introduce BPF_PROG_LIRC_MODE2") Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'include/linux/bpf_lirc.h')
-rw-r--r--include/linux/bpf_lirc.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/bpf_lirc.h b/include/linux/bpf_lirc.h
index 5f8a4283092d..9d9ff755ec29 100644
--- a/include/linux/bpf_lirc.h
+++ b/include/linux/bpf_lirc.h
@@ -5,11 +5,12 @@
#include <uapi/linux/bpf.h>
#ifdef CONFIG_BPF_LIRC_MODE2
-int lirc_prog_attach(const union bpf_attr *attr);
+int lirc_prog_attach(const union bpf_attr *attr, struct bpf_prog *prog);
int lirc_prog_detach(const union bpf_attr *attr);
int lirc_prog_query(const union bpf_attr *attr, union bpf_attr __user *uattr);
#else
-static inline int lirc_prog_attach(const union bpf_attr *attr)
+static inline int lirc_prog_attach(const union bpf_attr *attr,
+ struct bpf_prog *prog)
{
return -EINVAL;
}