Merge branch 'irqclean-submit1' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzi...
[pandora-kernel.git] / arch / um / kernel / time.c
index 552ca1c..2e354b3 100644 (file)
@@ -35,9 +35,6 @@ unsigned long long sched_clock(void)
        return (unsigned long long)jiffies_64 * (1000000000 / HZ);
 }
 
-/* Changed at early boot */
-int timer_irq_inited = 0;
-
 static unsigned long long prev_nsecs;
 #ifdef CONFIG_UML_REAL_TIME_CLOCK
 static long long delta;                /* Deviation per interval */
@@ -89,16 +86,16 @@ static inline unsigned long long get_time(void)
        return nsecs;
 }
 
-irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs)
+irqreturn_t um_timer(int irq, void *dev)
 {
        unsigned long long nsecs;
        unsigned long flags;
 
        write_seqlock_irqsave(&xtime_lock, flags);
 
-       do_timer(regs);
+       do_timer(1);
 
-       nsecs = get_time() + local_offset;
+       nsecs = get_time();
        xtime.tv_sec = nsecs / NSEC_PER_SEC;
        xtime.tv_nsec = nsecs - xtime.tv_sec * NSEC_PER_SEC;
 
@@ -113,12 +110,13 @@ static void register_timer(void)
 
        err = request_irq(TIMER_IRQ, um_timer, IRQF_DISABLED, "timer", NULL);
        if(err != 0)
-               printk(KERN_ERR "timer_init : request_irq failed - "
+               printk(KERN_ERR "register_timer : request_irq failed - "
                       "errno = %d\n", -err);
 
-       timer_irq_inited = 1;
-
-       user_time_init();
+       err = set_interval(1);
+       if(err != 0)
+               printk(KERN_ERR "register_timer : set_interval failed - "
+                      "errno = %d\n", -err);
 }
 
 extern void (*late_time_init)(void);