patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / arch / ia64 / kernel / time.c
index 744734e..e33bcb6 100644 (file)
@@ -10,6 +10,7 @@
  */
 #include <linux/config.h>
 
+#include <linux/cpu.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -44,14 +45,6 @@ EXPORT_SYMBOL(last_cli_ip);
 
 #endif
 
-unsigned long long
-sched_clock (void)
-{
-       unsigned long offset = ia64_get_itc();
-
-       return (offset * local_cpu_data->nsec_per_cyc) >> IA64_NSEC_PER_CYC_SHIFT;
-}
-
 static void
 itc_reset (void)
 {
@@ -244,6 +237,10 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
 {
        unsigned long new_itm;
 
+       if (unlikely(cpu_is_offline(smp_processor_id()))) {
+               return IRQ_HANDLED;
+       }
+
        platform_timer_interrupt(irq, dev_id, regs);
 
        new_itm = local_cpu_data->itm_next;
@@ -326,7 +323,7 @@ ia64_cpu_local_tick (void)
        ia64_set_itm(local_cpu_data->itm_next);
 }
 
-void __init
+void __devinit
 ia64_init_itm (void)
 {
        unsigned long platform_base_freq, itc_freq;