|
@@ -1507,6 +1507,9 @@ do { \
|
|
|
divisor = nsec * frequency;
|
|
|
}
|
|
|
|
|
|
+ if (!divisor)
|
|
|
+ return dividend;
|
|
|
+
|
|
|
return div64_u64(dividend, divisor);
|
|
|
}
|
|
|
|
|
@@ -1529,7 +1532,7 @@ static int perf_event_start(struct perf_event *event)
|
|
|
static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
|
|
|
{
|
|
|
struct hw_perf_event *hwc = &event->hw;
|
|
|
- u64 period, sample_period;
|
|
|
+ s64 period, sample_period;
|
|
|
s64 delta;
|
|
|
|
|
|
period = perf_calculate_period(event, nsec, count);
|