perf: Fix perf_event_exit_cpu_context()

Use the right cpu-context.. spotted by preempt warning on
hot-unplug

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Cc: Robert Richter <robert.richter@amd.com>
LKML-Reference: <20100917093009.461794357@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Peter Zijlstra
2010-09-17 11:28:49 +02:00
committed by Ingo Molnar
parent b04243ef70
commit 917bdd1c9b

View File

@@ -6269,14 +6269,13 @@ static void perf_event_exit_cpu_context(int cpu)
idx = srcu_read_lock(&pmus_srcu); idx = srcu_read_lock(&pmus_srcu);
list_for_each_entry_rcu(pmu, &pmus, entry) { list_for_each_entry_rcu(pmu, &pmus, entry) {
ctx = &this_cpu_ptr(pmu->pmu_cpu_context)->ctx; ctx = &per_cpu_ptr(pmu->pmu_cpu_context, cpu)->ctx;
mutex_lock(&ctx->mutex); mutex_lock(&ctx->mutex);
smp_call_function_single(cpu, __perf_event_exit_context, ctx, 1); smp_call_function_single(cpu, __perf_event_exit_context, ctx, 1);
mutex_unlock(&ctx->mutex); mutex_unlock(&ctx->mutex);
} }
srcu_read_unlock(&pmus_srcu, idx); srcu_read_unlock(&pmus_srcu, idx);
} }
static void perf_event_exit_cpu(int cpu) static void perf_event_exit_cpu(int cpu)