aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/setup.c
diff options
context:
space:
mode:
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>2007-08-22 06:53:30 -0400
committerTony Luck <tony.luck@intel.com>2007-08-28 19:03:06 -0400
commitf740e6c9c55cac6ab0a7d44a464b54467cca4f4f (patch)
tree915ce6c71163623ddb5dbbb09133e126007e6dfd /arch/ia64/kernel/setup.c
parent17764d2437b0c4440e0718205f2c26dbaa72bc27 (diff)
[IA64] Clear pending interrupts at CPU boot up time
The pending interrupts can be remaining at boot up time on some platform. This will cause spurious interrupts when interrupt is enabled for the first time. This patch clears IVR at the CPU initialization to eliminate such spurious interrupts. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/setup.c')
-rw-r--r--arch/ia64/kernel/setup.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index 407efea04bf5..1f9b1d818dcd 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -960,6 +960,11 @@ cpu_init (void)
960 960
961 /* clear TPR & XTP to enable all interrupt classes: */ 961 /* clear TPR & XTP to enable all interrupt classes: */
962 ia64_setreg(_IA64_REG_CR_TPR, 0); 962 ia64_setreg(_IA64_REG_CR_TPR, 0);
963
964 /* Clear any pending interrupts left by SAL/EFI */
965 while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR)
966 ia64_eoi();
967
963#ifdef CONFIG_SMP 968#ifdef CONFIG_SMP
964 normal_xtp(); 969 normal_xtp();
965#endif 970#endif