aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/cpu/perf_event_knc.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_knc.c b/arch/x86/kernel/cpu/perf_event_knc.c
index 73bcfbdedd50..f3a2af41552d 100644
--- a/arch/x86/kernel/cpu/perf_event_knc.c
+++ b/arch/x86/kernel/cpu/perf_event_knc.c
@@ -173,26 +173,22 @@ static void knc_pmu_enable_all(int added)
173static inline void 173static inline void
174knc_pmu_disable_event(struct perf_event *event) 174knc_pmu_disable_event(struct perf_event *event)
175{ 175{
176 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
177 struct hw_perf_event *hwc = &event->hw; 176 struct hw_perf_event *hwc = &event->hw;
178 u64 val; 177 u64 val;
179 178
180 val = hwc->config; 179 val = hwc->config;
181 if (cpuc->enabled) 180 val &= ~ARCH_PERFMON_EVENTSEL_ENABLE;
182 val &= ~ARCH_PERFMON_EVENTSEL_ENABLE;
183 181
184 (void)wrmsrl_safe(hwc->config_base + hwc->idx, val); 182 (void)wrmsrl_safe(hwc->config_base + hwc->idx, val);
185} 183}
186 184
187static void knc_pmu_enable_event(struct perf_event *event) 185static void knc_pmu_enable_event(struct perf_event *event)
188{ 186{
189 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
190 struct hw_perf_event *hwc = &event->hw; 187 struct hw_perf_event *hwc = &event->hw;
191 u64 val; 188 u64 val;
192 189
193 val = hwc->config; 190 val = hwc->config;
194 if (cpuc->enabled) 191 val |= ARCH_PERFMON_EVENTSEL_ENABLE;
195 val |= ARCH_PERFMON_EVENTSEL_ENABLE;
196 192
197 (void)wrmsrl_safe(hwc->config_base + hwc->idx, val); 193 (void)wrmsrl_safe(hwc->config_base + hwc->idx, val);
198} 194}