perf, bpf: fix conditional call to bpf_overflow_handler
authorArnd Bergmann <arnd@arndb.de>
Tue, 6 Sep 2016 13:10:22 +0000 (15:10 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Sep 2016 23:34:14 +0000 (16:34 -0700)
The newly added bpf_overflow_handler function is only built of both
CONFIG_EVENT_TRACING and CONFIG_BPF_SYSCALL are enabled, but the caller
only checks the latter:

kernel/events/core.c: In function 'perf_event_alloc':
kernel/events/core.c:9106:27: error: 'bpf_overflow_handler' undeclared (first use in this function)

This changes the caller so we also skip this call if CONFIG_EVENT_TRACING
is disabled entirely.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: aa6a5f3cb2b2 ("perf, bpf: add perf events core support for BPF_PROG_TYPE_PERF_EVENT programs")
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
kernel/events/core.c

index 85bf4c37911f75f3358468ed7d7bb6791740be52..a7b8c1c75fa71c057b504d249bfeff0161f0cd1f 100644 (file)
@@ -9072,7 +9072,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
        if (!overflow_handler && parent_event) {
                overflow_handler = parent_event->overflow_handler;
                context = parent_event->overflow_handler_context;
-#ifdef CONFIG_BPF_SYSCALL
+#if defined(CONFIG_BPF_SYSCALL) && defined(CONFIG_EVENT_TRACING)
                if (overflow_handler == bpf_overflow_handler) {
                        struct bpf_prog *prog = bpf_prog_inc(parent_event->prog);