sparc64: Fix maybe_change_configuration() PCR setting.
authorDavid S. Miller <davem@davemloft.net>
Wed, 23 Jun 2010 18:39:02 +0000 (11:39 -0700)
committerDavid S. Miller <davem@davemloft.net>
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 34ce49f80eac53185dfe32b951bb10e91224b4e2..2e1698332b6deca72d2718df3ce12a332dafa908 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: