diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-07-10 04:45:08 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-10 13:24:23 -0700 |
commit | 872aaa65a6ef30edef05a89977f7021f9840b215 (patch) | |
tree | d6402a26830dc2c5f48d6f9ec48069e3c0e784a7 /arch | |
parent | e64bd134085451fe3f751025c5d5a70729164b7c (diff) | |
download | blackbird-op-linux-872aaa65a6ef30edef05a89977f7021f9840b215.tar.gz blackbird-op-linux-872aaa65a6ef30edef05a89977f7021f9840b215.zip |
[PATCH] uml: timer handler tidying
Get rid of a user of timer_irq_inited (and first_tick) by observing that
prev_ticks can be used to decide if this is the first call.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/um/kernel/time_kern.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/arch/um/kernel/time_kern.c b/arch/um/kernel/time_kern.c index 8e56c58320ba..552ca1cb9847 100644 --- a/arch/um/kernel/time_kern.c +++ b/arch/um/kernel/time_kern.c @@ -38,7 +38,6 @@ unsigned long long sched_clock(void) /* Changed at early boot */ int timer_irq_inited = 0; -static int first_tick; static unsigned long long prev_nsecs; #ifdef CONFIG_UML_REAL_TIME_CLOCK static long long delta; /* Deviation per interval */ @@ -48,15 +47,8 @@ void timer_irq(union uml_pt_regs *regs) { unsigned long long ticks = 0; - if(!timer_irq_inited){ - /* This is to ensure that ticks don't pile up when - * the timer handler is suspended */ - first_tick = 0; - return; - } - - if(first_tick){ #ifdef CONFIG_UML_REAL_TIME_CLOCK + if(prev_nsecs){ /* We've had 1 tick */ unsigned long long nsecs = os_nsecs(); @@ -69,15 +61,11 @@ void timer_irq(union uml_pt_regs *regs) ticks += (delta * HZ) / BILLION; delta -= (ticks * BILLION) / HZ; + } + else prev_nsecs = os_nsecs(); #else - ticks = 1; + ticks = 1; #endif - } - else { - prev_nsecs = os_nsecs(); - first_tick = 1; - } - while(ticks > 0){ do_IRQ(TIMER_IRQ, regs); ticks--; |