Skip to contentSkip to conversation

ppc32: Fix pmac kernel build with oprofile

PATCH New Benjamin Herrenschmidt 1 participant 1 message Jan 17, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ppc32: Fix pmac kernel build with oprofile

Hi !

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...

arch/ppc/oprofile/Makefile +6 -1
Index: linux-work/arch/ppc/oprofile/Makefile
===================================================================
@@ -6,4 +6,9 @@
 		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
+
arch/ppc/oprofile/common.c +4 -6
Index: linux-work/arch/ppc/oprofile/common.c
===================================================================
@@ -124,7 +124,7 @@
 	.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 @@
 	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 @@
 
 	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)