diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/events/core.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index c378062da277..cc5d57d1d0b6 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c | |||
@@ -1120,6 +1120,10 @@ static int __perf_remove_from_context(void *info) | |||
1120 | raw_spin_lock(&ctx->lock); | 1120 | raw_spin_lock(&ctx->lock); |
1121 | event_sched_out(event, cpuctx, ctx); | 1121 | event_sched_out(event, cpuctx, ctx); |
1122 | list_del_event(event, ctx); | 1122 | list_del_event(event, ctx); |
1123 | if (!ctx->nr_events && cpuctx->task_ctx == ctx) { | ||
1124 | ctx->is_active = 0; | ||
1125 | cpuctx->task_ctx = NULL; | ||
1126 | } | ||
1123 | raw_spin_unlock(&ctx->lock); | 1127 | raw_spin_unlock(&ctx->lock); |
1124 | 1128 | ||
1125 | return 0; | 1129 | return 0; |