diff --git a/kernel/events/core.c b/kernel/events/core.c index a4187dea6402..73a86db06cc9 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -2384,10 +2384,9 @@ __perf_remove_from_context(struct perf_event *event, */ if (flags & DETACH_EXIT) state = PERF_EVENT_STATE_EXIT; - if (flags & DETACH_DEAD) { - event->pending_disable = 1; + if (flags & DETACH_DEAD) state = PERF_EVENT_STATE_DEAD; - } + event_sched_out(event, ctx); if (event->state > PERF_EVENT_STATE_OFF)