[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <176597509645.510.5364980686283921892.tip-bot2@tip-bot2>
Date: Wed, 17 Dec 2025 12:38:16 -0000
From: "tip-bot2 for Sean Christopherson" <tip-bot2@...utronix.de>
To: linux-tip-commits@...r.kernel.org
Cc: Sean Christopherson <seanjc@...gle.com>,
"Peter Zijlstra (Intel)" <peterz@...radead.org>,
Xudong Hao <xudong.hao@...el.com>, x86@...nel.org,
linux-kernel@...r.kernel.org
Subject:
[tip: perf/core] perf: Move security_perf_event_free() call to __free_event()
The following commit has been merged into the perf/core branch of tip:
Commit-ID: 991bdf7e9d6cc74c1de215d1a05c23ff61076bf0
Gitweb: https://git.kernel.org/tip/991bdf7e9d6cc74c1de215d1a05c23ff61076bf0
Author: Sean Christopherson <seanjc@...gle.com>
AuthorDate: Fri, 05 Dec 2025 16:16:39 -08:00
Committer: Peter Zijlstra <peterz@...radead.org>
CommitterDate: Wed, 17 Dec 2025 13:31:04 +01:00
perf: Move security_perf_event_free() call to __free_event()
Move the freeing of any security state associated with a perf event from
_free_event() to __free_event(), i.e. invoke security_perf_event_free() in
the error paths for perf_event_alloc(). This will allow adding potential
error paths in perf_event_alloc() that can occur after allocating security
state.
Note, kfree() and thus security_perf_event_free() is a nop if
event->security is NULL, i.e. calling security_perf_event_free() even if
security_perf_event_alloc() fails or is never reached is functionality ok.
Signed-off-by: Sean Christopherson <seanjc@...gle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Tested-by: Xudong Hao <xudong.hao@...el.com>
Link: https://patch.msgid.link/20251206001720.468579-4-seanjc@google.com
---
kernel/events/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index fab358d..6973483 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5601,6 +5601,8 @@ static void __free_event(struct perf_event *event)
{
struct pmu *pmu = event->pmu;
+ security_perf_event_free(event);
+
if (event->attach_state & PERF_ATTACH_CALLCHAIN)
put_callchain_buffers();
@@ -5664,8 +5666,6 @@ static void _free_event(struct perf_event *event)
unaccount_event(event);
- security_perf_event_free(event);
-
if (event->rb) {
/*
* Can happen when we close an event with re-directed output.
Powered by blists - more mailing lists