X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fia64%2Fkernel%2Ftime.c;h=e33bcb6610ef5634144064eec663dd526d99e7f3;hb=9213980e6a70d8473e0ffd4b39ab5b6caaba9ff5;hp=744734ecb56252849b46c59dcb135b24e696038d;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 744734ecb..e33bcb661 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -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;