diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 244ca3acb0ee2117db88c96d57182a22e750ba1b..c5fa717cf0991ecba0ca9d6244d386f1e8fda4a6 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c @@ -5380,6 +5380,8 @@ static int pmu_dev_alloc(struct pmu *pmu) goto out; } +static struct lock_class_key cpuctx_mutex; + int perf_pmu_register(struct pmu *pmu, char *name, int type) { int cpu, ret; @@ -5428,6 +5430,7 @@ int perf_pmu_register(struct pmu *pmu, char *name, int type) cpuctx = per_cpu_ptr(pmu->pmu_cpu_context, cpu); __perf_event_init_context(&cpuctx->ctx); + lockdep_set_class(&cpuctx->ctx.mutex, &cpuctx_mutex); cpuctx->ctx.type = cpu_context; cpuctx->ctx.pmu = pmu; cpuctx->jiffies_interval = 1;