diff options
Diffstat (limited to 'arch/sh64/kernel/time.c')
-rw-r--r-- | arch/sh64/kernel/time.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/sh64/kernel/time.c b/arch/sh64/kernel/time.c index bad0f05d1ab1..b37f4f4981d2 100644 --- a/arch/sh64/kernel/time.c +++ b/arch/sh64/kernel/time.c | |||
@@ -282,7 +282,7 @@ static long last_rtc_update = 0; | |||
282 | * timer_interrupt() needs to keep up the real-time clock, | 282 | * timer_interrupt() needs to keep up the real-time clock, |
283 | * as well as call the "do_timer()" routine every clocktick | 283 | * as well as call the "do_timer()" routine every clocktick |
284 | */ | 284 | */ |
285 | static inline void do_timer_interrupt(int irq, struct pt_regs *regs) | 285 | static inline void do_timer_interrupt(void) |
286 | { | 286 | { |
287 | unsigned long long current_ctc; | 287 | unsigned long long current_ctc; |
288 | asm ("getcon cr62, %0" : "=r" (current_ctc)); | 288 | asm ("getcon cr62, %0" : "=r" (current_ctc)); |
@@ -290,9 +290,10 @@ static inline void do_timer_interrupt(int irq, struct pt_regs *regs) | |||
290 | 290 | ||
291 | do_timer(1); | 291 | do_timer(1); |
292 | #ifndef CONFIG_SMP | 292 | #ifndef CONFIG_SMP |
293 | update_process_times(user_mode(regs)); | 293 | update_process_times(user_mode(get_irq_regs())); |
294 | #endif | 294 | #endif |
295 | profile_tick(CPU_PROFILING, regs); | 295 | if (current->pid) |
296 | profile_tick(CPU_PROFILING); | ||
296 | 297 | ||
297 | #ifdef CONFIG_HEARTBEAT | 298 | #ifdef CONFIG_HEARTBEAT |
298 | { | 299 | { |
@@ -323,7 +324,7 @@ static inline void do_timer_interrupt(int irq, struct pt_regs *regs) | |||
323 | * Time Stamp Counter value at the time of the timer interrupt, so that | 324 | * Time Stamp Counter value at the time of the timer interrupt, so that |
324 | * we later on can estimate the time of day more exactly. | 325 | * we later on can estimate the time of day more exactly. |
325 | */ | 326 | */ |
326 | static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | 327 | static irqreturn_t timer_interrupt(int irq, void *dev_id) |
327 | { | 328 | { |
328 | unsigned long timer_status; | 329 | unsigned long timer_status; |
329 | 330 | ||
@@ -340,7 +341,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
340 | * locally disabled. -arca | 341 | * locally disabled. -arca |
341 | */ | 342 | */ |
342 | write_lock(&xtime_lock); | 343 | write_lock(&xtime_lock); |
343 | do_timer_interrupt(irq, regs); | 344 | do_timer_interrupt(); |
344 | write_unlock(&xtime_lock); | 345 | write_unlock(&xtime_lock); |
345 | 346 | ||
346 | return IRQ_HANDLED; | 347 | return IRQ_HANDLED; |
@@ -465,9 +466,10 @@ static __init unsigned int get_cpu_hz(void) | |||
465 | #endif | 466 | #endif |
466 | } | 467 | } |
467 | 468 | ||
468 | static irqreturn_t sh64_rtc_interrupt(int irq, void *dev_id, | 469 | static irqreturn_t sh64_rtc_interrupt(int irq, void *dev_id) |
469 | struct pt_regs *regs) | ||
470 | { | 470 | { |
471 | struct pt_regs *regs = get_irq_regs(); | ||
472 | |||
471 | ctrl_outb(0, RCR1); /* Disable Carry Interrupts */ | 473 | ctrl_outb(0, RCR1); /* Disable Carry Interrupts */ |
472 | regs->regs[3] = 1; /* Using r3 */ | 474 | regs->regs[3] = 1; /* Using r3 */ |
473 | 475 | ||