aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorIan Wienand <ianw@gelato.unsw.edu.au>2006-06-20 20:33:04 -0400
committerTony Luck <tony.luck@intel.com>2006-06-21 17:48:34 -0400
commit9ba89334552b96e2127dcafb1c46ce255ecf2667 (patch)
tree9e94efa48696b0796720a9f9f042da51a6fa7fc8 /arch/ia64
parentf640f94ec4f39e8a4d91d58354d3e09b28769edf (diff)
[IA64] SKI Simulator boot
Sorry I didn't notice earlier, but that BUG_ON triggers for me on the simulator. AFAICS the mask for itv is set in cpu_init(), which comes after sal_init(). Consequently on the simulator the itv still has its start value of zero. I've probably missed something, but I wonder why at this stage of the boot you even need to save and restore the itv? Signed-Off-By: Ian Wienand <ianw@gelato.unsw.edu.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/kernel/sal.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c
index 056f7a6eedc7..77fa65903d94 100644
--- a/arch/ia64/kernel/sal.c
+++ b/arch/ia64/kernel/sal.c
@@ -227,7 +227,7 @@ static int sal_cache_flush_drops_interrupts;
227static void __init 227static void __init
228check_sal_cache_flush (void) 228check_sal_cache_flush (void)
229{ 229{
230 unsigned long flags, itv; 230 unsigned long flags;
231 int cpu; 231 int cpu;
232 u64 vector; 232 u64 vector;
233 233
@@ -238,9 +238,6 @@ check_sal_cache_flush (void)
238 * Schedule a timer interrupt, wait until it's reported, and see if 238 * Schedule a timer interrupt, wait until it's reported, and see if
239 * SAL_CACHE_FLUSH drops it. 239 * SAL_CACHE_FLUSH drops it.
240 */ 240 */
241 itv = ia64_get_itv();
242 BUG_ON((itv & (1 << 16)) == 0);
243
244 ia64_set_itv(IA64_TIMER_VECTOR); 241 ia64_set_itv(IA64_TIMER_VECTOR);
245 ia64_set_itm(ia64_get_itc() + 1000); 242 ia64_set_itm(ia64_get_itc() + 1000);
246 243
@@ -260,7 +257,6 @@ check_sal_cache_flush (void)
260 ia64_eoi(); 257 ia64_eoi();
261 } 258 }
262 259
263 ia64_set_itv(itv);
264 local_irq_restore(flags); 260 local_irq_restore(flags);
265 put_cpu(); 261 put_cpu();
266} 262}