mn10300: Switch do_timer() to xtimer_update()
authorTorben Hohn <torbenh@gmx.de>
Thu, 27 Jan 2011 15:00:12 +0000 (16:00 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 9 Feb 2011 15:17:24 +0000 (16:17 +0100)
Only one CPU gets the timer interrupt so mn10300_last_tsc does not
need to be protected by xtime lock. Remove xtime lovking and use
xtime_update() which does the locking itself.

Signed-off-by: Torben Hohn <torbenh@gmx.de>
Cc: David Howells <dhowells@redhat.com>
Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
LKML-Reference: <20110127150011.23248.62040.stgit@localhost>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/mn10300/kernel/time.c

index 75da468..5b95500 100644 (file)
@@ -104,8 +104,6 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
        unsigned tsc, elapse;
        irqreturn_t ret;
 
        unsigned tsc, elapse;
        irqreturn_t ret;
 
-       write_seqlock(&xtime_lock);
-
        while (tsc = get_cycles(),
               elapse = tsc - mn10300_last_tsc, /* time elapsed since last
                                                 * tick */
        while (tsc = get_cycles(),
               elapse = tsc - mn10300_last_tsc, /* time elapsed since last
                                                 * tick */
@@ -114,11 +112,9 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
                mn10300_last_tsc += MN10300_TSC_PER_HZ;
 
                /* advance the kernel's time tracking system */
                mn10300_last_tsc += MN10300_TSC_PER_HZ;
 
                /* advance the kernel's time tracking system */
-               do_timer(1);
+               xtime_update(1);
        }
 
        }
 
-       write_sequnlock(&xtime_lock);
-
        ret = local_timer_interrupt();
 #ifdef CONFIG_SMP
        send_IPI_allbutself(LOCAL_TIMER_IPI);
        ret = local_timer_interrupt();
 #ifdef CONFIG_SMP
        send_IPI_allbutself(LOCAL_TIMER_IPI);