[tip: perf/urgent] perf: Fix addr_filter_ranges lifetime
From: tip-bot2 for Peter Zijlstra
Date: Fri Jun 19 2026 - 06:12:37 EST
The following commit has been merged into the perf/urgent branch of tip:
Commit-ID: e62d4192e593630f355094adc467058a05bdc935
Gitweb: https://git.kernel.org/tip/e62d4192e593630f355094adc467058a05bdc935
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
AuthorDate: Thu, 18 Jun 2026 14:18:27 +02:00
Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
CommitterDate: Fri, 19 Jun 2026 12:05:00 +02:00
perf: Fix addr_filter_ranges lifetime
Lee Jia Jie reported that since event::addr_filter_ranges is used
under RCU, it should be RCU freed.
Reported-by: Lee Jia Jie <jiajie.lee@xxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
---
kernel/events/core.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 7935d56..c3a84c7 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5303,6 +5303,7 @@ static void free_event_rcu(struct rcu_head *head)
if (event->ns)
put_pid_ns(event->ns);
perf_event_free_filter(event);
+ kfree(event->addr_filter_ranges);
kmem_cache_free(perf_event_cache, event);
}
@@ -5750,8 +5751,6 @@ static void __free_event(struct perf_event *event)
if (event->attach_state & PERF_ATTACH_CALLCHAIN)
put_callchain_buffers();
- kfree(event->addr_filter_ranges);
-
if (event->attach_state & PERF_ATTACH_EXCLUSIVE)
exclusive_event_destroy(event);