On Thu, Jan 12, 2012 at 10:38:22AM -0500, Sergei Shtylyov wrote: > Hello. > > On 01/11/2012 11:44 PM, John Crispin wrote: > > > The patch makes the oprofile code use the performance counters irq. > > > This patch is written by Felix Fietkau. > > > Signed-off-by: Felix Fietkau<nbd@xxxxxxxxxxx> > > Signed-off-by: John Crispin<blogic@xxxxxxxxxxx> > > > @@ -374,6 +379,10 @@ static int __init mipsxx_init(void) > > save_perf_irq = perf_irq; > > perf_irq = mipsxx_perfcount_handler; > > > > + if (cp0_perfcount_irq>= 0) > > BTW, I just noticed. IRQ0 is not a valid IRQ in Linux, request_irq() should > fail when passed 0, so this and following check should be '> 0'. > There is also the little matter of coding style. Watch out for chapter 3. Guenter > > + return request_irq(cp0_perfcount_irq, mipsxx_perfcount_int, > > + IRQF_SHARED, "Perfcounter", save_perf_irq); > > + > > return 0; > > } > > > > @@ -381,6 +390,9 @@ static void mipsxx_exit(void) > > { > > int counters = op_model_mipsxx_ops.num_counters; > > > > + if (cp0_perfcount_irq>= 0) > > + free_irq(cp0_perfcount_irq, save_perf_irq); > > + > > counters = counters_per_cpu_to_total(counters); > > on_each_cpu(reset_counters, (void *)(long)counters, 1); > > > > WBR, Sergei >