]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf: Fix addr_filter_ranges lifetime
authorPeter Zijlstra <peterz@infradead.org>
Thu, 18 Jun 2026 12:18:27 +0000 (14:18 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 19 Jun 2026 10:05:00 +0000 (12:05 +0200)
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@starlabs.sg>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
kernel/events/core.c

index 7935d5663944ee1cbaf38cf8018c3347635e8d31..c3a84c7bcaeb977d63d75664d8c6c31c75fac06e 100644 (file)
@@ -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);