perf/x86: Fix cmpxchg() usage in amd_put_event_constraints()
authorRobert Richter <robert.richter@amd.com>
Thu, 5 Apr 2012 16:24:42 +0000 (18:24 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 26 Apr 2012 11:52:51 +0000 (13:52 +0200)
Now the return value of cmpxchg() is used to match an event. The
change removes the duplicate event comparison and traverses the list
until an event was removed. This also fixes the following warning:

 arch/x86/kernel/cpu/perf_event_amd.c:170: warning: value computed is not used

Signed-off-by: Robert Richter <robert.richter@amd.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1333643084-26776-3-git-send-email-robert.richter@amd.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/cpu/perf_event_amd.c

index 95e7fe1c5f0bf57c3bf2537a1856b00f81425458..589286f288778500b8767972cabe2dccfa713739 100644 (file)
@@ -205,10 +205,8 @@ static void amd_put_event_constraints(struct cpu_hw_events *cpuc,
         * when we come here
         */
        for (i = 0; i < x86_pmu.num_counters; i++) {
-               if (nb->owners[i] == event) {
-                       cmpxchg(nb->owners+i, event, NULL);
+               if (cmpxchg(nb->owners + i, event, NULL) == event)
                        break;
-               }
        }
 }