From e29f2b50f8b7a6a183937cbd244c618dd1aefc5f Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Tue, 14 Oct 2003 02:54:10 -0700 Subject: [PATCH] [PATCH] ia64: drop bogus "now < last_tick" message itc_get_offset() has a consistency check which is no longer valid now that xtime_lock is a seq_lock. Drop the bogus check. --- arch/ia64/kernel/time.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index d572f1a2073ab..1396a3876ff3e 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c @@ -65,8 +65,12 @@ itc_update (long delta_nsec) } /* - * Return the number of nano-seconds that elapsed since the last update to jiffy. The - * xtime_lock must be at least read-locked when calling this routine. + * Return the number of nano-seconds that elapsed since the last + * update to jiffy. It is quite possible that the timer interrupt + * will interrupt this and result in a race for any of jiffies, + * wall_jiffies or itm_next. Thus, the xtime_lock must be at least + * read synchronised when calling this routine (see do_gettimeofday() + * below for an example). */ unsigned long itc_get_offset (void) @@ -77,11 +81,6 @@ itc_get_offset (void) last_tick = (cpu_data(TIME_KEEPER_ID)->itm_next - (lost + 1)*cpu_data(TIME_KEEPER_ID)->itm_delta); - if (unlikely((long) (now - last_tick) < 0)) { - printk(KERN_ERR "CPU %d: now < last_tick (now=0x%lx,last_tick=0x%lx)!\n", - smp_processor_id(), now, last_tick); - return last_nsec_offset; - } elapsed_cycles = now - last_tick; return (elapsed_cycles*local_cpu_data->nsec_per_cyc) >> IA64_NSEC_PER_CYC_SHIFT; } -- 2.53.0