Commit e53f276b authored by Torben Hohn's avatar Torben Hohn Committed by Thomas Gleixner

m68k: Switch do_timer() to xtime_update()

xtime_update() properly takes the xtime_lock
Signed-off-by: default avatarTorben Hohn <torbenh@gmx.de>
Cc: Sam Creasey <sammy@sammy.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: johnstul@us.ibm.com
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: hch@infradead.org
Cc: yong.zhang0@gmail.com
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greg Ungerer <gerg@uclinux.org>
LKML-Reference: <20110127150006.23248.71790.stgit@localhost>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 7bde2ab7
...@@ -45,8 +45,8 @@ extern int bvme6000_set_clock_mmss (unsigned long); ...@@ -45,8 +45,8 @@ extern int bvme6000_set_clock_mmss (unsigned long);
extern void bvme6000_reset (void); extern void bvme6000_reset (void);
void bvme6000_set_vectors (void); void bvme6000_set_vectors (void);
/* Save tick handler routine pointer, will point to do_timer() in /* Save tick handler routine pointer, will point to xtime_update() in
* kernel/sched.c, called via bvme6000_process_int() */ * kernel/timer/timekeeping.c, called via bvme6000_process_int() */
static irq_handler_t tick_handler; static irq_handler_t tick_handler;
......
...@@ -37,11 +37,11 @@ static inline int set_rtc_mmss(unsigned long nowtime) ...@@ -37,11 +37,11 @@ static inline int set_rtc_mmss(unsigned long nowtime)
/* /*
* timer_interrupt() needs to keep up the real-time clock, * timer_interrupt() needs to keep up the real-time clock,
* as well as call the "do_timer()" routine every clocktick * as well as call the "xtime_update()" routine every clocktick
*/ */
static irqreturn_t timer_interrupt(int irq, void *dummy) static irqreturn_t timer_interrupt(int irq, void *dummy)
{ {
do_timer(1); xtime_update(1);
update_process_times(user_mode(get_irq_regs())); update_process_times(user_mode(get_irq_regs()));
profile_tick(CPU_PROFILING); profile_tick(CPU_PROFILING);
......
...@@ -46,8 +46,8 @@ extern void mvme147_reset (void); ...@@ -46,8 +46,8 @@ extern void mvme147_reset (void);
static int bcd2int (unsigned char b); static int bcd2int (unsigned char b);
/* Save tick handler routine pointer, will point to do_timer() in /* Save tick handler routine pointer, will point to xtime_update() in
* kernel/sched.c, called via mvme147_process_int() */ * kernel/time/timekeeping.c, called via mvme147_process_int() */
irq_handler_t tick_handler; irq_handler_t tick_handler;
......
...@@ -51,8 +51,8 @@ extern void mvme16x_reset (void); ...@@ -51,8 +51,8 @@ extern void mvme16x_reset (void);
int bcd2int (unsigned char b); int bcd2int (unsigned char b);
/* Save tick handler routine pointer, will point to do_timer() in /* Save tick handler routine pointer, will point to xtime_update() in
* kernel/sched.c, called via mvme16x_process_int() */ * kernel/time/timekeeping.c, called via mvme16x_process_int() */
static irq_handler_t tick_handler; static irq_handler_t tick_handler;
......
...@@ -66,7 +66,7 @@ static irqreturn_t sun3_int5(int irq, void *dev_id) ...@@ -66,7 +66,7 @@ static irqreturn_t sun3_int5(int irq, void *dev_id)
#ifdef CONFIG_SUN3 #ifdef CONFIG_SUN3
intersil_clear(); intersil_clear();
#endif #endif
do_timer(1); xtime_update(1);
update_process_times(user_mode(get_irq_regs())); update_process_times(user_mode(get_irq_regs()));
if (!(kstat_cpu(0).irqs[irq] % 20)) if (!(kstat_cpu(0).irqs[irq] % 20))
sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 160) / 20]); sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 160) / 20]);
......
...@@ -36,7 +36,7 @@ static inline int set_rtc_mmss(unsigned long nowtime) ...@@ -36,7 +36,7 @@ static inline int set_rtc_mmss(unsigned long nowtime)
#ifndef CONFIG_GENERIC_CLOCKEVENTS #ifndef CONFIG_GENERIC_CLOCKEVENTS
/* /*
* timer_interrupt() needs to keep up the real-time clock, * timer_interrupt() needs to keep up the real-time clock,
* as well as call the "do_timer()" routine every clocktick * as well as call the "xtime_update()" routine every clocktick
*/ */
irqreturn_t arch_timer_interrupt(int irq, void *dummy) irqreturn_t arch_timer_interrupt(int irq, void *dummy)
{ {
...@@ -44,11 +44,7 @@ irqreturn_t arch_timer_interrupt(int irq, void *dummy) ...@@ -44,11 +44,7 @@ irqreturn_t arch_timer_interrupt(int irq, void *dummy)
if (current->pid) if (current->pid)
profile_tick(CPU_PROFILING); profile_tick(CPU_PROFILING);
write_seqlock(&xtime_lock); xtime_update(1);
do_timer(1);
write_sequnlock(&xtime_lock);
update_process_times(user_mode(get_irq_regs())); update_process_times(user_mode(get_irq_regs()));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment