aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorEvan Li <evan.li@linux.alibaba.com>2025-12-12 16:49:43 +0800
committerIngo Molnar <mingo@kernel.org>2025-12-12 09:57:39 +0100
commit9415f749d34b926b9e4853da1462f4d941f89a0d (patch)
treef9be6eab55e53671eace27b75993e57656011db2 /tools
parentc418d8b4d7a43a86b82ee39cb52ece3034383530 (diff)
downloadtip-perf/urgent.tar.gz
perf/x86/intel: Fix NULL event dereference crash in handle_pmi_common()perf-urgent-2025-12-12perf/urgent
handle_pmi_common() may observe an active bit set in cpuc->active_mask while the corresponding cpuc->events[] entry has already been cleared, which leads to a NULL pointer dereference. This can happen when interrupt throttling stops all events in a group while PEBS processing is still in progress. perf_event_overflow() can trigger perf_event_throttle_group(), which stops the group and clears the cpuc->events[] entry, but the active bit may still be set when handle_pmi_common() iterates over the events. The following recent fix: 7e772a93eb61 ("perf/x86: Fix NULL event access and potential PEBS record loss") moved the cpuc->events[] clearing from x86_pmu_stop() to x86_pmu_del() and relied on cpuc->active_mask/pebs_enabled checks. However, handle_pmi_common() can still encounter a NULL cpuc->events[] entry despite the active bit being set. Add an explicit NULL check on the event pointer before using it, to cover this legitimate scenario and avoid the NULL dereference crash. Fixes: 7e772a93eb61 ("perf/x86: Fix NULL event access and potential PEBS record loss") Reported-by: kitta <kitta@linux.alibaba.com> Co-developed-by: kitta <kitta@linux.alibaba.com> Signed-off-by: Evan Li <evan.li@linux.alibaba.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://patch.msgid.link/20251212084943.2124787-1-evan.li@linux.alibaba.com Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220855
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions