From: David S. Miller Date: Wed, 23 Jun 2010 18:39:02 +0000 (-0700) Subject: sparc64: Fix maybe_change_configuration() PCR setting. X-Git-Tag: firefly_0821_release~9833^2~1296^2~10 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b7d45c3f741b114cdda9ee0cd727afaf60a1bf37;p=firefly-linux-kernel-4.4.55.git sparc64: Fix maybe_change_configuration() PCR setting. Need to mask out the existing event bits before OR'ing in the new ones. Noticed by Peter Zijlstra. Signed-off-by: David S. Miller --- diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 34ce49f80eac..2e1698332b6d 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c @@ -655,6 +655,7 @@ static u64 maybe_change_configuration(struct cpu_hw_events *cpuc, u64 pcr) cpuc->current_idx[i] = idx; enc = perf_event_get_enc(cpuc->events[i]); + pcr &= ~mask_for_index(idx); pcr |= event_encoding(enc, idx); } out: