From 83b6f6d8dade657b63e035b7ed471cfa6928b2d4 Mon Sep 17 00:00:00 2001 From: Dave Aldridge Date: Thu, 21 Jan 2016 06:17:11 -0800 Subject: [PATCH] sparc64: Fix for perf event counts sometimes reported as negative numbers Use an unsigned number to prevent sign extension in the calculation to work out the difference between the previous and the current count obtained from the perfomance instrumentation counters. Orabug: 22607658 Signed-off-by: Dave Aldridge (cherry picked from commit b0fb8b78a2cc452512296ce5bec1fa927ebf867e) (cherry picked from commit da8cc212a978a1f54cadadeaabed46d9d5f839b3) Signed-off-by: Allen Pais --- arch/sparc/kernel/perf_event.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 6be35b1310393..d5e46143f99c8 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c @@ -862,8 +862,7 @@ static u64 sparc_perf_event_update(struct perf_event *event, struct hw_perf_event *hwc, int idx) { int shift = 64 - 32; - u64 prev_raw_count, new_raw_count; - s64 delta; + u64 prev_raw_count, new_raw_count, delta; again: prev_raw_count = local64_read(&hwc->prev_count); -- 2.50.1