summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Steiner <steiner@sgi.com>2006-10-16 12:56:54 -0500
committerTony Luck <tony.luck@intel.com>2006-10-17 14:51:49 -0700
commitaccaddb27a2d544e38e10ff2a2782b33bbbad913 (patch)
treea5c967039a09b176f7c71e375e0aecdbd8118038
parentffc45571dfb4b70e7eda8d97f64a05f5e5a992ac (diff)
downloadlinux-3.10-accaddb27a2d544e38e10ff2a2782b33bbbad913.tar.gz
linux-3.10-accaddb27a2d544e38e10ff2a2782b33bbbad913.tar.bz2
linux-3.10-accaddb27a2d544e38e10ff2a2782b33bbbad913.zip
[IA64] - Allow IPIs in timer loop
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>
-rw-r--r--arch/ia64/kernel/time.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 41169a9bc30..39e0cd3a088 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -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 {