From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

The recent oprofile changes for Motorola e500 broke oprofile for other
CPUs.  This patch fixes the build.

Proper support for the G3/G4 PMCs would be interesting, and making sure the
basic interrupt PC sampling still works on CPUs that don't have supported
PMCs too...

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/ppc/oprofile/Makefile |    7 ++++++-
 25-akpm/arch/ppc/oprofile/common.c |   10 ++++------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff -puN arch/ppc/oprofile/common.c~ppc32-fix-pmac-kernel-build-with-oprofile arch/ppc/oprofile/common.c
--- 25/arch/ppc/oprofile/common.c~ppc32-fix-pmac-kernel-build-with-oprofile	2005-01-16 22:48:16.133932976 -0800
+++ 25-akpm/arch/ppc/oprofile/common.c	2005-01-16 22:48:16.144931304 -0800
@@ -124,7 +124,7 @@ static struct oprofile_operations oprof_
 	.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)
 {
 	char *name;
 	int cpu_id = smp_processor_id();
@@ -133,13 +133,13 @@ int __init oprofile_arch_init(struct opr
 	model = &op_model_fsl_booke;
 #else
 	printk(KERN_ERR "oprofile enabled on unsupported processor!\n");
-	return -ENODEV;
+	return;
 #endif
 
 	name = kmalloc(32, GFP_KERNEL);
 
 	if (NULL == name)
-		return -ENOMEM;
+		return;
 
 	sprintf(name, "ppc/%s", cur_cpu_spec[cpu_id]->cpu_name);
 
@@ -147,12 +147,10 @@ int __init oprofile_arch_init(struct opr
 
 	model->num_counters = cur_cpu_spec[cpu_id]->num_pmcs;
 
-	*ops = &oprof_ppc32_ops;
+	*ops = oprof_ppc32_ops;
 
 	printk(KERN_INFO "oprofile: using %s performance monitoring.\n",
 	       oprof_ppc32_ops.cpu_type);
-
-	return 0;
 }
 
 void oprofile_arch_exit(void)
diff -puN arch/ppc/oprofile/Makefile~ppc32-fix-pmac-kernel-build-with-oprofile arch/ppc/oprofile/Makefile
--- 25/arch/ppc/oprofile/Makefile~ppc32-fix-pmac-kernel-build-with-oprofile	2005-01-16 22:48:16.141931760 -0800
+++ 25-akpm/arch/ppc/oprofile/Makefile	2005-01-16 22:48:16.144931304 -0800
@@ -6,4 +6,9 @@ DRIVER_OBJS := $(addprefix ../../../driv
 		oprofilefs.o oprofile_stats.o \
 		timer_int.o )
 
-oprofile-y := $(DRIVER_OBJS) common.o op_model_fsl_booke.o
+oprofile-y := $(DRIVER_OBJS) common.o
+
+ifeq ($(CONFIG_FSL_BOOKE),y)
+	oprofile-y += op_model_fsl_booke.o
+endif
+
_