[IA64] - Allow IPIs in timer loop
authorJack Steiner <steiner@sgi.com>
Mon, 16 Oct 2006 17:56:54 +0000 (12:56 -0500)
committerTony Luck <tony.luck@intel.com>
Tue, 17 Oct 2006 21:51:49 +0000 (14:51 -0700)
Allow pending IPIs to interrupt a timer interrupt that is looping
in the do_timer() "while" loop in timer_interrupt(). (Interrupts are
allowed at only 1 spot in the code).

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/time.c

index 41169a9bc30138be685b5decacc088412018050f..39e0cd3a0884e84e1c60b279a8090e6bfb611cd0 100644 (file)
@@ -84,6 +84,12 @@ timer_interrupt (int irq, void *dev_id)
 
                if (time_after(new_itm, ia64_get_itc()))
                        break;
+
+               /*
+                * Allow IPIs to interrupt the timer loop.
+                */
+               local_irq_enable();
+               local_irq_disable();
        }
 
        do {