mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 11:06:41 -05:00
Merge tag 'perf_urgent_for_v6.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fix from Borislav Petkov: - Fix a case where the events throttling logic operates on inactive events * tag 'perf_urgent_for_v6.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf: Avoid undefined behavior from stopping/starting inactive events
This commit is contained in:
@@ -2665,6 +2665,9 @@ static void perf_log_itrace_start(struct perf_event *event);
|
||||
|
||||
static void perf_event_unthrottle(struct perf_event *event, bool start)
|
||||
{
|
||||
if (event->state != PERF_EVENT_STATE_ACTIVE)
|
||||
return;
|
||||
|
||||
event->hw.interrupts = 0;
|
||||
if (start)
|
||||
event->pmu->start(event, 0);
|
||||
@@ -2674,6 +2677,9 @@ static void perf_event_unthrottle(struct perf_event *event, bool start)
|
||||
|
||||
static void perf_event_throttle(struct perf_event *event)
|
||||
{
|
||||
if (event->state != PERF_EVENT_STATE_ACTIVE)
|
||||
return;
|
||||
|
||||
event->hw.interrupts = MAX_INTERRUPTS;
|
||||
event->pmu->stop(event, 0);
|
||||
if (event == event->group_leader)
|
||||
|
||||
Reference in New Issue
Block a user