aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kepplinger <[email protected]>2015-11-06 16:31:08 -0800
committerLinus Torvalds <[email protected]>2015-11-06 17:50:42 -0800
commit78e3c7951021b4e1a554b3d619506b55b0619073 (patch)
tree551b6effe854c1a463140f79ad80ccb685d344f6
parent06d8f8178c5709ff21cfbe16b6c078d2669b6e80 (diff)
arch/x86/kernel/cpu/perf_event_msr.c: use sign_extend64() for sign extension
Signed-off-by: Martin Kepplinger <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: George Spelvin <[email protected]> Cc: Rasmus Villemoes <[email protected]> Cc: Maxime Coquelin <[email protected]> Cc: Denys Vlasenko <[email protected]> Cc: Yury Norov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
-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:
goto again;
delta = now - prev;
- if (unlikely(event->hw.event_base == MSR_SMI_COUNT)) {
- delta <<= 32;
- delta >>= 32; /* sign extend */
- }
+ if (unlikely(event->hw.event_base == MSR_SMI_COUNT))
+ delta = sign_extend64(delta, 31);
+
local64_add(now - prev, &event->count);
}