linux/debian/patches/debian/revert-bpf-one-perf-event-c...

41 lines
1.2 KiB
Diff

From: Ben Hutchings <ben@decadent.org.uk>
Date: Thu, 26 Oct 2017 22:38:57 +0200
Subject: Revert "bpf: one perf event close won't free bpf program attached ..."
Forwarded: not-needed
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.
---
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -277,7 +277,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 *);
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -8126,7 +8126,6 @@ static int perf_event_set_bpf_prog(struc
}
}
event->tp_event->prog = prog;
- event->tp_event->bpf_prog_owner = event;
return 0;
}
@@ -8141,7 +8140,7 @@ static void perf_event_free_bpf_prog(str
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);
}