diff options
-rw-r--r-- | arch/x86/oprofile/op_model_amd.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c index f4ebc4596da8..6a58256dce9f 100644 --- a/arch/x86/oprofile/op_model_amd.c +++ b/arch/x86/oprofile/op_model_amd.c | |||
@@ -127,7 +127,7 @@ static void op_mux_switch_ctrl(struct op_x86_model_spec const *model, | |||
127 | /* enable active counters */ | 127 | /* enable active counters */ |
128 | for (i = 0; i < NUM_COUNTERS; ++i) { | 128 | for (i = 0; i < NUM_COUNTERS; ++i) { |
129 | int virt = op_x86_phys_to_virt(i); | 129 | int virt = op_x86_phys_to_virt(i); |
130 | if (!counter_config[virt].enabled) | 130 | if (!reset_value[virt]) |
131 | continue; | 131 | continue; |
132 | rdmsrl(msrs->controls[i].addr, val); | 132 | rdmsrl(msrs->controls[i].addr, val); |
133 | val &= model->reserved; | 133 | val &= model->reserved; |
@@ -163,7 +163,8 @@ static void op_amd_setup_ctrs(struct op_x86_model_spec const *model, | |||
163 | 163 | ||
164 | /* setup reset_value */ | 164 | /* setup reset_value */ |
165 | for (i = 0; i < NUM_VIRT_COUNTERS; ++i) { | 165 | for (i = 0; i < NUM_VIRT_COUNTERS; ++i) { |
166 | if (counter_config[i].enabled) | 166 | if (counter_config[i].enabled |
167 | && msrs->counters[op_x86_virt_to_phys(i)].addr) | ||
167 | reset_value[i] = counter_config[i].count; | 168 | reset_value[i] = counter_config[i].count; |
168 | else | 169 | else |
169 | reset_value[i] = 0; | 170 | reset_value[i] = 0; |
@@ -197,9 +198,7 @@ static void op_amd_setup_ctrs(struct op_x86_model_spec const *model, | |||
197 | /* enable active counters */ | 198 | /* enable active counters */ |
198 | for (i = 0; i < NUM_COUNTERS; ++i) { | 199 | for (i = 0; i < NUM_COUNTERS; ++i) { |
199 | int virt = op_x86_phys_to_virt(i); | 200 | int virt = op_x86_phys_to_virt(i); |
200 | if (!counter_config[virt].enabled) | 201 | if (!reset_value[virt]) |
201 | continue; | ||
202 | if (!msrs->counters[i].addr) | ||
203 | continue; | 202 | continue; |
204 | 203 | ||
205 | /* setup counter registers */ | 204 | /* setup counter registers */ |