Title: [7195] branches/2009R1/arch/blackfin/mach-common/ints-priority.c: Fix bug [#5448], make core timer interrupter be handled by handle_percpu_irq
- Revision
- 7195
- Author
- gyang
- Date
- 2009-08-18 00:29:24 -0400 (Tue, 18 Aug 2009)
Log Message
Fix bug [#5448], make core timer interrupter be handled by handle_percpu_irq
Modified Paths
Diff
Modified: branches/2009R1/arch/blackfin/mach-common/ints-priority.c (7194 => 7195)
--- branches/2009R1/arch/blackfin/mach-common/ints-priority.c 2009-08-17 19:05:07 UTC (rev 7194)
+++ branches/2009R1/arch/blackfin/mach-common/ints-priority.c 2009-08-18 04:29:24 UTC (rev 7195)
@@ -1052,35 +1052,37 @@
set_irq_chained_handler(irq, bfin_demux_error_irq);
break;
#endif
-#if defined(CONFIG_TICKSOURCE_GPTMR0)
+
+#ifdef CONFIG_SMP
+#ifdef CONFIG_TICKSOURCE_GPTMR0
case IRQ_TIMER0:
- set_irq_handler(irq, handle_percpu_irq);
- break;
#endif
-#ifdef CONFIG_SMP
+#ifdef CONFIG_TICKSOURCE_CORETMR
+ case IRQ_CORETMR:
+#endif
case IRQ_SUPPLE_0:
case IRQ_SUPPLE_1:
set_irq_handler(irq, handle_percpu_irq);
break;
#endif
+
+#ifdef CONFIG_IPIPE
+#ifndef CONFIG_TICKSOURCE_CORETMR
+ case IRQ_TIMER0:
+ set_irq_handler(irq, handle_simple_irq);
+ break;
+#endif
+ case IRQ_CORETMR:
+ set_irq_handler(irq, handle_simple_irq);
+ break;
default:
-#ifdef CONFIG_IPIPE
- /*
- * We want internal interrupt sources to be
- * masked, because ISRs may trigger interrupts
- * recursively (e.g. DMA), but interrupts are
- * _not_ masked at CPU level. So let's handle
- * most of them as level interrupts, except
- * the timer interrupt which is special.
- */
- if (irq == IRQ_SYSTMR || irq == IRQ_CORETMR)
- set_irq_handler(irq, handle_simple_irq);
- else
- set_irq_handler(irq, handle_level_irq);
+ set_irq_handler(irq, handle_level_irq);
+ break;
#else /* !CONFIG_IPIPE */
+ default:
set_irq_handler(irq, handle_simple_irq);
+ break;
#endif /* !CONFIG_IPIPE */
- break;
}
}
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits