Revert "bpf: one perf event close won't free bpf program attached ..."
authorBen Hutchings <ben@decadent.org.uk>
Thu, 26 Oct 2017 20:38:57 +0000 (22:38 +0200)
committerYves-Alexis Perez <corsac@debian.org>
Fri, 9 Feb 2018 12:58:52 +0000 (12:58 +0000)
This reverts commit dcc738d393156dd29ed961ecefe13d96ed5f782f, which was
commit ec9dd352d591f0c90402ec67a317c1ed4fb2e638 upstream.  It introduces
an ABI break that's not easily avoidable.  The bug it fixes doesn't seem
to have any security impact.

Gbp-Pq: Topic debian
Gbp-Pq: Name revert-bpf-one-perf-event-close-won-t-free-bpf-program-atta.patch

include/linux/trace_events.h
kernel/events/core.c

index ba57266d9e801b52d1f7e99ee53b52d571637e78..be007610ceb08aaa7cad1073effe73b24adff66d 100644 (file)
@@ -273,7 +273,6 @@ struct trace_event_call {
        int                             perf_refcount;
        struct hlist_head __percpu      *perf_events;
        struct bpf_prog                 *prog;
-       struct perf_event               *bpf_prog_owner;
 
        int     (*perf_perm)(struct trace_event_call *,
                             struct perf_event *);
index 2cc5ed1adac0b87061ab474cf515a7e7aca8c1bc..031c0379e60c815ada0dcb16f84f4ce2b696a109 100644 (file)
@@ -7891,7 +7891,6 @@ static int perf_event_set_bpf_prog(struct perf_event *event, u32 prog_fd)
                }
        }
        event->tp_event->prog = prog;
-       event->tp_event->bpf_prog_owner = event;
 
        return 0;
 }
@@ -7906,7 +7905,7 @@ static void perf_event_free_bpf_prog(struct perf_event *event)
                return;
 
        prog = event->tp_event->prog;
-       if (prog && event->tp_event->bpf_prog_owner == event) {
+       if (prog) {
                event->tp_event->prog = NULL;
                bpf_prog_put(prog);
        }