summaryrefslogtreecommitdiffstats
path: root/arch/x86/oprofile/op_model_ppro.c
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2010-03-23 20:01:54 +0100
committerRobert Richter <robert.richter@amd.com>2010-05-04 11:35:27 +0200
commit83300ce0df6b72e156b386457aa0f0902b8c0a98 (patch)
tree0aa77779550808cd1076945b9a698dcbcca02dbe /arch/x86/oprofile/op_model_ppro.c
parentoprofile/x86: reserve counter msrs pairwise (diff)
downloadlinux-83300ce0df6b72e156b386457aa0f0902b8c0a98.tar.xz
linux-83300ce0df6b72e156b386457aa0f0902b8c0a98.zip
oprofile/x86: moving shutdown functions
Moving some code in preparation of the next patch. Signed-off-by: Robert Richter <robert.richter@amd.com>
Diffstat (limited to 'arch/x86/oprofile/op_model_ppro.c')
-rw-r--r--arch/x86/oprofile/op_model_ppro.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
index f8e268e8e992..b07d25a52f02 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -30,6 +30,22 @@ static int counter_width = 32;
static u64 *reset_value;
+static void ppro_shutdown(struct op_msrs const * const msrs)
+{
+ int i;
+
+ for (i = 0; i < num_counters; ++i) {
+ if (!msrs->counters[i].addr)
+ continue;
+ release_perfctr_nmi(MSR_P6_PERFCTR0 + i);
+ release_evntsel_nmi(MSR_P6_EVNTSEL0 + i);
+ }
+ if (reset_value) {
+ kfree(reset_value);
+ reset_value = NULL;
+ }
+}
+
static void ppro_fill_in_addresses(struct op_msrs * const msrs)
{
int i;
@@ -189,23 +205,6 @@ static void ppro_stop(struct op_msrs const * const msrs)
}
}
-static void ppro_shutdown(struct op_msrs const * const msrs)
-{
- int i;
-
- for (i = 0; i < num_counters; ++i) {
- if (!msrs->counters[i].addr)
- continue;
- release_perfctr_nmi(MSR_P6_PERFCTR0 + i);
- release_evntsel_nmi(MSR_P6_EVNTSEL0 + i);
- }
- if (reset_value) {
- kfree(reset_value);
- reset_value = NULL;
- }
-}
-
-
struct op_x86_model_spec op_ppro_spec = {
.num_counters = 2,
.num_controls = 2,