Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 5574
b: refs/heads/master
c: 2757a71
h: refs/heads/master
v: v3
  • Loading branch information
Hirokazu Takata authored and Linus Torvalds committed Aug 2, 2005
1 parent d6af579 commit 16ad571
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d2013485a52fb7ece48e5688b443cc098f4dbbdf
refs/heads/master: 2757a71c3122c7653e3dd8077ad6ca71efb1d450
13 changes: 4 additions & 9 deletions trunk/arch/m32r/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,7 @@ static long last_rtc_update = 0;
* timer_interrupt() needs to keep up the real-time clock,
* as well as call the "do_timer()" routine every clocktick
*/
static inline void
do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
#ifndef CONFIG_SMP
profile_tick(CPU_PROFILING, regs);
Expand All @@ -221,6 +220,7 @@ do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
* CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
* called as close as possible to 500 ms before the new second starts.
*/
write_seqlock(&xtime_lock);
if ((time_status & STA_UNSYNC) == 0
&& xtime.tv_sec > last_rtc_update + 660
&& (xtime.tv_nsec / 1000) >= 500000 - ((unsigned)TICK_SIZE) / 2
Expand All @@ -231,21 +231,16 @@ do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
else /* do it again in 60 s */
last_rtc_update = xtime.tv_sec - 600;
}
write_sequnlock(&xtime_lock);
/* As we return to user mode fire off the other CPU schedulers..
this is basically because we don't yet share IRQ's around.
This message is rigged to be safe on the 386 - basically it's
a hack, so don't look closely for now.. */

#ifdef CONFIG_SMP
smp_local_timer_interrupt(regs);
smp_send_timer();
#endif
}

irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
write_seqlock(&xtime_lock);
do_timer_interrupt(irq, NULL, regs);
write_sequnlock(&xtime_lock);

return IRQ_HANDLED;
}
Expand Down

0 comments on commit 16ad571

Please sign in to comment.