diff --git a/kernel/events/core.c b/kernel/events/core.c index 1d243fadfd1249bb78dbcf6a94796ab94caf82ee..fe97f95f204ecd81d564eaf36f28d527f334befb 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -1230,9 +1230,9 @@ perf_lock_task_context(struct task_struct *task, int ctxn, unsigned long *flags) !atomic_inc_not_zero(&ctx->refcount)) { raw_spin_unlock(&ctx->lock); ctx = NULL; + } else { + WARN_ON_ONCE(ctx->task != task); } - - WARN_ON_ONCE(ctx->task != task); } rcu_read_unlock(); if (!ctx)