Merge branch 'master' of git://git.kernel.org/pub/scm/fs/xfs/xfs
[pandora-kernel.git] / arch / frv / kernel / time.c
index ed588d7..fb0ce75 100644 (file)
@@ -43,7 +43,9 @@ unsigned long __delay_loops_MHz;
 static irqreturn_t timer_interrupt(int irq, void *dummy);
 
 static struct irqaction timer_irq  = {
-       timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL
+       .handler = timer_interrupt,
+       .flags = IRQF_DISABLED,
+       .name = "timer",
 };
 
 static inline int set_rtc_mmss(unsigned long nowtime)
@@ -60,18 +62,17 @@ static irqreturn_t timer_interrupt(int irq, void *dummy)
        /* last time the cmos clock got updated */
        static long last_rtc_update = 0;
 
+       profile_tick(CPU_PROFILING);
        /*
         * Here we are in the timer irq handler. We just have irqs locally
         * disabled but we don't know if the timer_bh is running on the other
-        * CPU. We need to avoid to SMP race with it. NOTE: we don' t need
+        * CPU. We need to avoid to SMP race with it. NOTE: we don't need
         * the irq version of write_lock because as just said we have irq
         * locally disabled. -arca
         */
        write_seqlock(&xtime_lock);
 
        do_timer(1);
-       update_process_times(user_mode(get_irq_regs()));
-       profile_tick(CPU_PROFILING);
 
        /*
         * If we have an externally synchronized Linux clock, then update
@@ -96,6 +97,9 @@ static irqreturn_t timer_interrupt(int irq, void *dummy)
 #endif /* CONFIG_HEARTBEAT */
 
        write_sequnlock(&xtime_lock);
+
+       update_process_times(user_mode(get_irq_regs()));
+
        return IRQ_HANDLED;
 }
 
@@ -123,7 +127,7 @@ void time_init(void)
 
        /* FIX by dqg : Set to zero for platforms that don't have tod */
        /* without this time is undefined and can overflow time_t, causing  */
-       /* very stange errors */
+       /* very strange errors */
        year = 1980;
        mon = day = 1;
        hour = min = sec = 0;