bpf: fix attach type BPF_LIRC_MODE2 dependency wrt CONFIG_CGROUP_BPF
authorSean Young <sean@mess.org>
Mon, 18 Jun 2018 23:04:24 +0000 (00:04 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 26 Jun 2018 09:28:38 +0000 (11:28 +0200)
commitfdb5c4531c1e0e50e609df83f736b6f3a02896e2
treec2ca0792e966f0bfb00f08d4df3401f2d68d52a9
parent68d676a089625daed9d61df56ac63b5cd7189efe
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>
drivers/media/rc/bpf-lirc.c
include/linux/bpf-cgroup.h
include/linux/bpf.h
include/linux/bpf_lirc.h
kernel/bpf/cgroup.c
kernel/bpf/sockmap.c
kernel/bpf/syscall.c