|
@@ -467,23 +467,6 @@ armv6pmu_enable_event(struct hw_perf_event *hwc,
|
|
|
raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
|
|
|
}
|
|
|
|
|
|
-static int counter_is_active(unsigned long pmcr, int idx)
|
|
|
-{
|
|
|
- unsigned long mask = 0;
|
|
|
- if (idx == ARMV6_CYCLE_COUNTER)
|
|
|
- mask = ARMV6_PMCR_CCOUNT_IEN;
|
|
|
- else if (idx == ARMV6_COUNTER0)
|
|
|
- mask = ARMV6_PMCR_COUNT0_IEN;
|
|
|
- else if (idx == ARMV6_COUNTER1)
|
|
|
- mask = ARMV6_PMCR_COUNT1_IEN;
|
|
|
-
|
|
|
- if (mask)
|
|
|
- return pmcr & mask;
|
|
|
-
|
|
|
- WARN_ONCE(1, "invalid counter number (%d)\n", idx);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static irqreturn_t
|
|
|
armv6pmu_handle_irq(int irq_num,
|
|
|
void *dev)
|
|
@@ -513,7 +496,8 @@ armv6pmu_handle_irq(int irq_num,
|
|
|
struct perf_event *event = cpuc->events[idx];
|
|
|
struct hw_perf_event *hwc;
|
|
|
|
|
|
- if (!counter_is_active(pmcr, idx))
|
|
|
+ /* Ignore if we don't have an event. */
|
|
|
+ if (!event)
|
|
|
continue;
|
|
|
|
|
|
/*
|