diff --git a/kernel/events/core.c b/kernel/events/core.c index 84f5b59735af..091134a52a01 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -3787,7 +3787,9 @@ find_get_context(struct pmu *pmu, struct task_struct *task, cpuctx = per_cpu_ptr(pmu->pmu_cpu_context, cpu); ctx = &cpuctx->ctx; get_ctx(ctx); + raw_spin_lock_irqsave(&ctx->lock, flags); ++ctx->pin_count; + raw_spin_unlock_irqrestore(&ctx->lock, flags); return ctx; }