perf, x86: Fixup the precise_ip computation
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Tue, 19 Oct 2010 12:38:11 +0000 (14:38 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 22 Oct 2010 12:18:25 +0000 (14:18 +0200)
In case we don't have PEBS, the LBR fixup doesn't make sense.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Stephane Eranian <eranian@google.com>
LKML-Reference: <20101019134808.354429461@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/perf_event.c

index fe73c1844a9a5b7c9a0c902bef0b9f993207acee..f369c53315a5b5f9f49c5460885d831af06a893a 100644 (file)
@@ -497,12 +497,13 @@ static int x86_pmu_hw_config(struct perf_event *event)
                int precise = 0;
 
                /* Support for constant skid */
-               if (x86_pmu.pebs)
+               if (x86_pmu.pebs) {
                        precise++;
 
-               /* Support for IP fixup */
-               if (x86_pmu.lbr_nr)
-                       precise++;
+                       /* Support for IP fixup */
+                       if (x86_pmu.lbr_nr)
+                               precise++;
+               }
 
                if (event->attr.precise_ip > precise)
                        return -EOPNOTSUPP;