[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:
committed by
Paul Mackerras
parent
9a699aefa8
commit
32a33994d5
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user