aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/cpu/perf_event_msr.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_msr.c b/arch/x86/kernel/cpu/perf_event_msr.c
index f32ac13934f2..ec863b9a9f78 100644
--- a/arch/x86/kernel/cpu/perf_event_msr.c
+++ b/arch/x86/kernel/cpu/perf_event_msr.c
@@ -163,10 +163,9 @@ again:
163 goto again; 163 goto again;
164 164
165 delta = now - prev; 165 delta = now - prev;
166 if (unlikely(event->hw.event_base == MSR_SMI_COUNT)) { 166 if (unlikely(event->hw.event_base == MSR_SMI_COUNT))
167 delta <<= 32; 167 delta = sign_extend64(delta, 31);
168 delta >>= 32; /* sign extend */ 168
169 }
170 local64_add(now - prev, &event->count); 169 local64_add(now - prev, &event->count);
171} 170}
172 171