1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-03 16:40:17 +02:00
openwrt-xburst/target/linux/generic/patches-3.6/307-mips_oprofile_fix.patch
florian eb0c020062 [kernel] make all 3.6 patches apply and build
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33911 3c298f89-4303-0410-b956-a3cf2f4a3e73
2012-10-24 13:05:22 +00:00

36 lines
1.0 KiB
Diff

--- a/arch/mips/oprofile/op_model_mipsxx.c
+++ b/arch/mips/oprofile/op_model_mipsxx.c
@@ -303,6 +303,11 @@ static irqreturn_t mipsxx_perfcount_int(
return mipsxx_perfcount_handler();
}
+static irqreturn_t mipsxx_perfcount_int(int irq, void *dev_id)
+{
+ return mipsxx_perfcount_handler();
+}
+
static int __init mipsxx_init(void)
{
int counters;
@@ -385,6 +390,10 @@ static int __init mipsxx_init(void)
return request_irq(cp0_perfcount_irq, mipsxx_perfcount_int,
0, "Perfcounter", save_perf_irq);
+ if (cp0_perfcount_irq >= 0)
+ return request_irq(cp0_perfcount_irq, mipsxx_perfcount_int,
+ IRQF_SHARED, "Perfcounter", save_perf_irq);
+
return 0;
}
@@ -395,6 +404,9 @@ static void mipsxx_exit(void)
if ((cp0_perfcount_irq >= 0) && (cp0_compare_irq != cp0_perfcount_irq))
free_irq(cp0_perfcount_irq, save_perf_irq);
+ 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);