diff options
author | Ian Wienand <ianw@gelato.unsw.edu.au> | 2006-06-20 20:33:04 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-06-21 17:48:34 -0400 |
commit | 9ba89334552b96e2127dcafb1c46ce255ecf2667 (patch) | |
tree | 9e94efa48696b0796720a9f9f042da51a6fa7fc8 | |
parent | f640f94ec4f39e8a4d91d58354d3e09b28769edf (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>
-rw-r--r-- | arch/ia64/kernel/sal.c | 6 |
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; | |||
227 | static void __init | 227 | static void __init |
228 | check_sal_cache_flush (void) | 228 | check_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 | } |