struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
        int idx = event->hw.idx;
  
 -      if (idx == -1)
 -              return -EAGAIN;
 +      if (WARN_ON_ONCE(!(event->hw.state & PERF_HES_STOPPED)))
 +              return;
 +
 +      if (WARN_ON_ONCE(idx == -1))
 +              return;
 +
 +      if (flags & PERF_EF_RELOAD) {
 +              WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));
 +              x86_perf_event_set_period(event);
 +      }
 +
 +      event->hw.state = 0;
  
 -      x86_perf_event_set_period(event);
        cpuc->events[idx] = event;
        __set_bit(idx, cpuc->active_mask);
+       __set_bit(idx, cpuc->running);
        x86_pmu.enable(event);
        perf_event_update_userpage(event);
 -
 -      return 0;
 -}
 -
 -static void x86_pmu_unthrottle(struct perf_event *event)
 -{
 -      int ret = x86_pmu_start(event);
 -      WARN_ON_ONCE(ret);
  }
  
  void perf_event_print_debug(void)