diff options
-rw-r--r-- | kernel/events/core.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index 4acec97e5448..67e115d4ef96 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -4183,7 +4183,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; |