mirror of https://gitee.com/openkylin/linux.git
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
|
@ -45,8 +45,8 @@ extern int bvme6000_set_clock_mmss (unsigned long);
|
|||
extern void bvme6000_reset (void);
|
||||
void bvme6000_set_vectors (void);
|
||||
|
||||
/* Save tick handler routine pointer, will point to do_timer() in
|
||||
* kernel/sched.c, called via bvme6000_process_int() */
|
||||
/* Save tick handler routine pointer, will point to xtime_update() in
|
||||
* kernel/timer/timekeeping.c, called via bvme6000_process_int() */
|
||||
|
||||
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,
|
||||
* 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)
|
||||
{
|
||||
do_timer(1);
|
||||
xtime_update(1);
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
profile_tick(CPU_PROFILING);
|
||||
|
||||
|
|
|
@ -46,8 +46,8 @@ extern void mvme147_reset (void);
|
|||
|
||||
static int bcd2int (unsigned char b);
|
||||
|
||||
/* Save tick handler routine pointer, will point to do_timer() in
|
||||
* kernel/sched.c, called via mvme147_process_int() */
|
||||
/* Save tick handler routine pointer, will point to xtime_update() in
|
||||
* kernel/time/timekeeping.c, called via mvme147_process_int() */
|
||||
|
||||
irq_handler_t tick_handler;
|
||||
|
||||
|
|
|
@ -51,8 +51,8 @@ extern void mvme16x_reset (void);
|
|||
|
||||
int bcd2int (unsigned char b);
|
||||
|
||||
/* Save tick handler routine pointer, will point to do_timer() in
|
||||
* kernel/sched.c, called via mvme16x_process_int() */
|
||||
/* Save tick handler routine pointer, will point to xtime_update() in
|
||||
* kernel/time/timekeeping.c, called via mvme16x_process_int() */
|
||||
|
||||
static irq_handler_t tick_handler;
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ static irqreturn_t sun3_int5(int irq, void *dev_id)
|
|||
#ifdef CONFIG_SUN3
|
||||
intersil_clear();
|
||||
#endif
|
||||
do_timer(1);
|
||||
xtime_update(1);
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
if (!(kstat_cpu(0).irqs[irq] % 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
|
||||
/*
|
||||
* 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)
|
||||
{
|
||||
|
@ -44,11 +44,7 @@ irqreturn_t arch_timer_interrupt(int irq, void *dummy)
|
|||
if (current->pid)
|
||||
profile_tick(CPU_PROFILING);
|
||||
|
||||
write_seqlock(&xtime_lock);
|
||||
|
||||
do_timer(1);
|
||||
|
||||
write_sequnlock(&xtime_lock);
|
||||
xtime_update(1);
|
||||
|
||||
update_process_times(user_mode(get_irq_regs()));
|
||||
|
||||
|
|
Loading…
Reference in New Issue