[PATCH] ppc64: Fix oprofile when compiled as a module

My recent changes to oprofile broke it when built as a module. Fix it by
using an enum instead of a function pointer. This way we still retain
the oprofile configuration in the cputable.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Anton Blanchard
2006-01-09 15:41:31 +11:00
committed by Paul Mackerras
parent 9a699aefa8
commit 32a33994d5
3 changed files with 59 additions and 82 deletions

View File

@@ -135,9 +135,31 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
int __init oprofile_arch_init(struct oprofile_operations *ops)
{
if (!cur_cpu_spec->oprofile_model || !cur_cpu_spec->oprofile_cpu_type)
if (!cur_cpu_spec->oprofile_cpu_type)
return -ENODEV;
model = cur_cpu_spec->oprofile_model;
switch (cur_cpu_spec->oprofile_type) {
#ifdef CONFIG_PPC64
case RS64:
model = &op_model_rs64;
break;
case POWER4:
model = &op_model_power4;
break;
#else
case G4:
model = &op_model_7450;
break;
#endif
#ifdef CONFIG_FSL_BOOKE
case BOOKE:
model = &op_model_fsl_booke;
break;
#endif
default:
return -ENODEV;
}
model->num_counters = cur_cpu_spec->num_pmcs;
ops->cpu_type = cur_cpu_spec->oprofile_cpu_type;