alpha: Change do_timer() to xtime_update()
authorTorben Hohn <torbenh@gmx.de>
Thu, 27 Jan 2011 14:59:15 +0000 (15:59 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 31 Jan 2011 13:55:43 +0000 (14:55 +0100)
xtime_update() takes the xtime_lock itself.

timer_interrupt() is only called on the boot cpu. See do_entInt(). So
"state" in timer_interrupt does not require protection by xtime_lock.

Signed-off-by: Torben Hohn <torbenh@gmx.de>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: johnstul@us.ibm.com
Cc: hch@infradead.org
Cc: yong.zhang0@gmail.com
LKML-Reference: <20110127145915.23248.20919.stgit@localhost>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/alpha/kernel/time.c

index c1f3e7cb82a4945e6345c1e4be80cad88be36c53..a58e84f1a63b76cc3e96856d10736a1c03ba6872 100644 (file)
@@ -159,7 +159,7 @@ void read_persistent_clock(struct timespec *ts)
 
 /*
  * timer_interrupt() needs to keep up the real-time clock,
- * as well as call the "do_timer()" routine every clocktick
+ * as well as call the "xtime_update()" routine every clocktick
  */
 irqreturn_t timer_interrupt(int irq, void *dev)
 {
@@ -172,8 +172,6 @@ irqreturn_t timer_interrupt(int irq, void *dev)
        profile_tick(CPU_PROFILING);
 #endif
 
-       write_seqlock(&xtime_lock);
-
        /*
         * Calculate how many ticks have passed since the last update,
         * including any previous partial leftover.  Save any resulting
@@ -187,9 +185,7 @@ irqreturn_t timer_interrupt(int irq, void *dev)
        nticks = delta >> FIX_SHIFT;
 
        if (nticks)
-               do_timer(nticks);
-
-       write_sequnlock(&xtime_lock);
+               xtime_update(nticks);
 
        if (test_irq_work_pending()) {
                clear_irq_work_pending();