diff --git a/[refs] b/[refs] index 062b45c69abb..522b1cedba89 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3dab77fb1bf89664bb1c9544607159dcab6f7d57 +refs/heads/master: 970892a9031a5dc7217bd394fb9d89fa75a4a7bc diff --git a/trunk/kernel/perf_counter.c b/trunk/kernel/perf_counter.c index b8c6b97a20a3..3f841beefc7b 100644 --- a/trunk/kernel/perf_counter.c +++ b/trunk/kernel/perf_counter.c @@ -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) {