x86/oprofile: pass the model to setup_ctrs() functions
authorRobert Richter <robert.richter@amd.com>
Mon, 25 May 2009 17:31:44 +0000 (19:31 +0200)
committerRobert Richter <robert.richter@amd.com>
Thu, 11 Jun 2009 17:42:14 +0000 (19:42 +0200)
In follow-on patches the setup_ctrs() functions will need data that
describes the model. This patch extends the function argument list to
pass a pointer of the model to these function.

Signed-off-by: Robert Richter <robert.richter@amd.com>
arch/x86/oprofile/nmi_int.c
arch/x86/oprofile/op_model_amd.c
arch/x86/oprofile/op_model_p4.c
arch/x86/oprofile/op_model_ppro.c
arch/x86/oprofile/op_x86_model.h

index ae0ab03..c31f87b 100644 (file)
@@ -125,7 +125,7 @@ static void nmi_cpu_setup(void *dummy)
        int cpu = smp_processor_id();
        struct op_msrs *msrs = &per_cpu(cpu_msrs, cpu);
        spin_lock(&oprofilefs_lock);
-       model->setup_ctrs(msrs);
+       model->setup_ctrs(model, msrs);
        spin_unlock(&oprofilefs_lock);
        per_cpu(saved_lvtpc, cpu) = apic_read(APIC_LVTPC);
        apic_write(APIC_LVTPC, APIC_DM_NMI);
index aaa7ffa..86e0a01 100644 (file)
@@ -85,7 +85,8 @@ static void op_amd_fill_in_addresses(struct op_msrs * const msrs)
 }
 
 
-static void op_amd_setup_ctrs(struct op_msrs const * const msrs)
+static void op_amd_setup_ctrs(struct op_x86_model_spec const *model,
+                             struct op_msrs const * const msrs)
 {
        unsigned int low, high;
        int i;
index 365d8a9..05ba028 100644 (file)
@@ -542,7 +542,8 @@ static void pmc_setup_one_p4_counter(unsigned int ctr)
 }
 
 
-static void p4_setup_ctrs(struct op_msrs const * const msrs)
+static void p4_setup_ctrs(struct op_x86_model_spec const *model,
+                         struct op_msrs const * const msrs)
 {
        unsigned int i;
        unsigned int low, high;
index 61ee8f6..40b44ee 100644 (file)
@@ -51,7 +51,8 @@ static void ppro_fill_in_addresses(struct op_msrs * const msrs)
 }
 
 
-static void ppro_setup_ctrs(struct op_msrs const * const msrs)
+static void ppro_setup_ctrs(struct op_x86_model_spec const *model,
+                           struct op_msrs const * const msrs)
 {
        unsigned int low, high;
        int i;
index a207b1c..6161c7f 100644 (file)
@@ -48,7 +48,8 @@ struct op_x86_model_spec {
        int             (*init)(struct oprofile_operations *ops);
        void            (*exit)(void);
        void            (*fill_in_addresses)(struct op_msrs * const msrs);
-       void            (*setup_ctrs)(struct op_msrs const * const msrs);
+       void            (*setup_ctrs)(struct op_x86_model_spec const *model,
+                                     struct op_msrs const * const msrs);
        int             (*check_ctrs)(struct pt_regs * const regs,
                                      struct op_msrs const * const msrs);
        void            (*start)(struct op_msrs const * const msrs);