sparc64: Fix maybe_change_configuration() PCR setting.
David S. Miller [Wed, 23 Jun 2010 18:39:02 +0000 (11:39 -0700)]
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 <davem@davemloft.net>

arch/sparc/kernel/perf_event.c

index 34ce49f..2e16983 100644 (file)
@@ -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: