diff options
Diffstat (limited to 'arch/arm/kernel/perf_event.c')
| -rw-r--r-- | arch/arm/kernel/perf_event.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 417c392ddf1..ecbb0288e5d 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c @@ -319,8 +319,8 @@ validate_event(struct cpu_hw_events *cpuc,  {  	struct hw_perf_event fake_event = event->hw; -	if (event->pmu && event->pmu != &pmu) -		return 0; +	if (event->pmu != &pmu || event->state <= PERF_EVENT_STATE_OFF) +		return 1;  	return armpmu->get_event_idx(cpuc, &fake_event) >= 0;  } @@ -1041,8 +1041,8 @@ armv6pmu_handle_irq(int irq_num,  	/*  	 * Handle the pending perf events.  	 * -	 * Note: this call *must* be run with interrupts enabled. For -	 * platforms that can have the PMU interrupts raised as a PMI, this +	 * Note: this call *must* be run with interrupts disabled. For +	 * platforms that can have the PMU interrupts raised as an NMI, this  	 * will not work.  	 */  	perf_event_do_pending(); @@ -2017,8 +2017,8 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev)  	/*  	 * Handle the pending perf events.  	 * -	 * Note: this call *must* be run with interrupts enabled. For -	 * platforms that can have the PMU interrupts raised as a PMI, this +	 * Note: this call *must* be run with interrupts disabled. For +	 * platforms that can have the PMU interrupts raised as an NMI, this  	 * will not work.  	 */  	perf_event_do_pending(); | 
