]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/i386/kernel/time.c
Merge branch 'i915fb' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/intelf...
[linux-2.6-omap-h63xx.git] / arch / i386 / kernel / time.c
index 41c5b2dc6200b0a600a830f42121e2290d5b29d6..9d3074759856e0e1ff508b9ca6aec2b077c27075 100644 (file)
@@ -302,6 +302,12 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
        do_timer_interrupt(irq, regs);
 
        write_sequnlock(&xtime_lock);
+
+#ifdef CONFIG_X86_LOCAL_APIC
+       if (using_apic_timer)
+               smp_send_timer_broadcast_ipi(regs);
+#endif
+
        return IRQ_HANDLED;
 }
 
@@ -406,9 +412,9 @@ static int timer_resume(struct sys_device *dev)
        write_seqlock_irqsave(&xtime_lock, flags);
        xtime.tv_sec = sec;
        xtime.tv_nsec = 0;
-       write_sequnlock_irqrestore(&xtime_lock, flags);
-       jiffies += sleep_length;
+       jiffies_64 += sleep_length;
        wall_jiffies += sleep_length;
+       write_sequnlock_irqrestore(&xtime_lock, flags);
        if (last_timer->resume)
                last_timer->resume();
        cur_timer = last_timer;