[PATCH 03/11] perf, sparc64: Fix maybe_change_configuration() PCR setting.

Peter Zijlstra
2010-06-24T14:38:55Z

[-- Attachment #1: davem-sparc-pmu-fixup.patch --]
[-- Type: text/plain, Size: 788 bytes --]

From: David S. Miller <davem@davemloft.net>

Need to mask out the existing event bits before OR'ing in
the new ones.

Reported-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
arch/sparc/kernel/perf_event.c | 1 +
1 file changed, 1 insertion(+)

Index: linux-2.6/arch/sparc/kernel/perf_event.c
===================================================================
--- linux-2.6.orig/arch/sparc/kernel/perf_event.c
+++ linux-2.6/arch/sparc/kernel/perf_event.c
@@ -657,6 +657,7 @@ static u64 maybe_change_configuration(st
cpuc->current_idx[i] = idx;

enc = perf_event_get_enc(cpuc->events[i]);
+ pcr &= ~mask_for_index(idx);
pcr |= event_encoding(enc, idx);
}