m68k: Switch do_timer() to xtime_update()
xtime_update() properly takes the xtime_lock Signed-off-by: Torben 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: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
7bde2ab7cb
commit
e53f276beb
6 changed files with 11 additions and 15 deletions
|
@ -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)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 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);
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
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)
|
||||||
#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)
|
||||||
#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)
|
||||||
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()));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue