Skip to content
  • Ingo Molnar's avatar
    bpf: Fix the build on BPF_SYSCALL=y && !CONFIG_TRACING kernels, make it more configurable · e1abf2cc
    Ingo Molnar authored
    
    
    So bpf_tracing.o depends on CONFIG_BPF_SYSCALL - but that's not its only
    dependency, it also depends on the tracing infrastructure and on kprobes,
    without which it will fail to build with:
    
      In file included from kernel/trace/bpf_trace.c:14:0:
      kernel/trace/trace.h: In function ‘trace_test_and_set_recursion’:
      kernel/trace/trace.h:491:28: error: ‘struct task_struct’ has no member named ‘trace_recursion’
        unsigned int val = current->trace_recursion;
      [...]
    
    It took quite some time to trigger this build failure, because right now
    BPF_SYSCALL is very obscure, depends on CONFIG_EXPERT. So also make BPF_SYSCALL
    more configurable, not just under CONFIG_EXPERT.
    
    If BPF_SYSCALL, tracing and kprobes are enabled then enable the bpf_tracing
    gateway as well.
    
    We might want to make this an interactive option later on, although
    I'd not complicate it unnecessarily: enabling BPF_SYSCALL is enough of
    an indicator that the user wants BPF support.
    
    Cc: Alexei Starovoitov <ast@plumgrid.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    e1abf2cc