|
@@ -307,6 +307,10 @@ counter_sched_out(struct perf_counter *counter,
|
|
|
return;
|
|
|
|
|
|
counter->state = PERF_COUNTER_STATE_INACTIVE;
|
|
|
+ if (counter->pending_disable) {
|
|
|
+ counter->pending_disable = 0;
|
|
|
+ counter->state = PERF_COUNTER_STATE_OFF;
|
|
|
+ }
|
|
|
counter->tstamp_stopped = ctx->time;
|
|
|
counter->pmu->disable(counter);
|
|
|
counter->oncpu = -1;
|
|
@@ -2343,7 +2347,7 @@ static void perf_pending_counter(struct perf_pending_entry *entry)
|
|
|
|
|
|
if (counter->pending_disable) {
|
|
|
counter->pending_disable = 0;
|
|
|
- perf_counter_disable(counter);
|
|
|
+ __perf_counter_disable(counter);
|
|
|
}
|
|
|
|
|
|
if (counter->pending_wakeup) {
|