diff --git a/kernel/events/core.c b/kernel/events/core.c index 8f3d23cc8..bf79fee07 100755 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -4017,7 +4017,11 @@ static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count, bo period = perf_calculate_period(event, nsec, count); delta = (s64)(period - hwc->sample_period); - delta = (delta + 7) / 8; /* low pass filter */ + if (delta >= 0) + delta += 7; + else + delta -= 7; + delta /= 8; /* low pass filter */ sample_period = hwc->sample_period + delta;