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>
 static void __init
 check_sal_cache_flush (void)
 {
-       unsigned long flags, itv;
+       unsigned long flags;
        int cpu;
        u64 vector;
 
         * Schedule a timer interrupt, wait until it's reported, and see if
         * SAL_CACHE_FLUSH drops it.
         */
-       itv = ia64_get_itv();
-       BUG_ON((itv & (1 << 16)) == 0);
-
        ia64_set_itv(IA64_TIMER_VECTOR);
        ia64_set_itm(ia64_get_itc() + 1000);
 
                ia64_eoi();
        }
 
-       ia64_set_itv(itv);
        local_irq_restore(flags);
        put_cpu();
 }