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

Reply via email to