From: Greg Banks oprofile ppc64 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc64/oprofile/common.c | 33 ++++++++++---------------- 25-akpm/arch/ppc64/oprofile/op_model_power4.c | 3 -- 25-akpm/arch/ppc64/oprofile/op_model_rs64.c | 3 -- 3 files changed, 15 insertions(+), 24 deletions(-) diff -puN arch/ppc64/oprofile/common.c~oprofile-update-ppc-for-api-changes arch/ppc64/oprofile/common.c --- 25/arch/ppc64/oprofile/common.c~oprofile-update-ppc-for-api-changes Tue Nov 9 13:55:31 2004 +++ 25-akpm/arch/ppc64/oprofile/common.c Tue Nov 9 13:55:31 2004 @@ -125,16 +125,7 @@ static int op_ppc64_create_files(struct return 0; } -static struct oprofile_operations oprof_ppc64_ops = { - .create_files = op_ppc64_create_files, - .setup = op_ppc64_setup, - .shutdown = op_ppc64_shutdown, - .start = op_ppc64_start, - .stop = op_ppc64_stop, - .cpu_type = NULL /* To be filled in below. */ -}; - -int __init oprofile_arch_init(struct oprofile_operations **ops) +void __init oprofile_arch_init(struct oprofile_operations *ops) { unsigned int pvr; @@ -145,7 +136,7 @@ int __init oprofile_arch_init(struct opr case PV_630p: model = &op_model_rs64; model->num_counters = 8; - oprof_ppc64_ops.cpu_type = "ppc64/power3"; + ops->cpu_type = "ppc64/power3"; break; case PV_NORTHSTAR: @@ -154,40 +145,42 @@ int __init oprofile_arch_init(struct opr case PV_SSTAR: model = &op_model_rs64; model->num_counters = 8; - oprof_ppc64_ops.cpu_type = "ppc64/rs64"; + ops->cpu_type = "ppc64/rs64"; break; case PV_POWER4: case PV_POWER4p: model = &op_model_power4; model->num_counters = 8; - oprof_ppc64_ops.cpu_type = "ppc64/power4"; + ops->cpu_type = "ppc64/power4"; break; case PV_970: case PV_970FX: model = &op_model_power4; model->num_counters = 8; - oprof_ppc64_ops.cpu_type = "ppc64/970"; + ops->cpu_type = "ppc64/970"; break; case PV_POWER5: case PV_POWER5p: model = &op_model_power4; model->num_counters = 6; - oprof_ppc64_ops.cpu_type = "ppc64/power5"; + ops->cpu_type = "ppc64/power5"; break; default: - return -ENODEV; + return; } - *ops = &oprof_ppc64_ops; + ops->create_files = op_ppc64_create_files; + ops->setup = op_ppc64_setup; + ops->shutdown = op_ppc64_shutdown; + ops->start = op_ppc64_start; + ops->stop = op_ppc64_stop; printk(KERN_INFO "oprofile: using %s performance monitoring.\n", - oprof_ppc64_ops.cpu_type); - - return 0; + ops->cpu_type); } void oprofile_arch_exit(void) diff -puN arch/ppc64/oprofile/op_model_power4.c~oprofile-update-ppc-for-api-changes arch/ppc64/oprofile/op_model_power4.c --- 25/arch/ppc64/oprofile/op_model_power4.c~oprofile-update-ppc-for-api-changes Tue Nov 9 13:55:31 2004 +++ 25-akpm/arch/ppc64/oprofile/op_model_power4.c Tue Nov 9 13:55:31 2004 @@ -264,7 +264,6 @@ static void power4_handle_interrupt(stru int is_kernel; int val; int i; - unsigned int cpu = smp_processor_id(); unsigned int mmcr0; pc = get_pc(regs); @@ -277,7 +276,7 @@ static void power4_handle_interrupt(stru val = ctr_read(i); if (val < 0) { if (oprofile_running && ctr[i].enabled) { - oprofile_add_sample(pc, is_kernel, i, cpu); + oprofile_add_pc(pc, is_kernel, i); ctr_write(i, reset_value[i]); } else { ctr_write(i, 0); diff -puN arch/ppc64/oprofile/op_model_rs64.c~oprofile-update-ppc-for-api-changes arch/ppc64/oprofile/op_model_rs64.c --- 25/arch/ppc64/oprofile/op_model_rs64.c~oprofile-update-ppc-for-api-changes Tue Nov 9 13:55:31 2004 +++ 25-akpm/arch/ppc64/oprofile/op_model_rs64.c Tue Nov 9 13:55:31 2004 @@ -180,7 +180,6 @@ static void rs64_handle_interrupt(struct int i; unsigned long pc = mfspr(SPRN_SIAR); int is_kernel = (pc >= KERNELBASE); - unsigned int cpu = smp_processor_id(); /* set the PMM bit (see comment below) */ mtmsrd(mfmsr() | MSR_PMM); @@ -189,7 +188,7 @@ static void rs64_handle_interrupt(struct val = ctr_read(i); if (val < 0) { if (ctr[i].enabled) { - oprofile_add_sample(pc, is_kernel, i, cpu); + oprofile_add_pc(pc, is_kernel, i); ctr_write(i, reset_value[i]); } else { ctr_write(i, 0); _