diff options
Diffstat (limited to 'arch')
31 files changed, 40 insertions, 41 deletions
diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c index b191cc759737..7c1e44420a78 100644 --- a/arch/alpha/kernel/time.c +++ b/arch/alpha/kernel/time.c | |||
| @@ -132,7 +132,7 @@ irqreturn_t timer_interrupt(int irq, void *dev, struct pt_regs * regs) | |||
| 132 | nticks = delta >> FIX_SHIFT; | 132 | nticks = delta >> FIX_SHIFT; |
| 133 | 133 | ||
| 134 | while (nticks > 0) { | 134 | while (nticks > 0) { |
| 135 | do_timer(regs); | 135 | do_timer(1); |
| 136 | #ifndef CONFIG_SMP | 136 | #ifndef CONFIG_SMP |
| 137 | update_process_times(user_mode(regs)); | 137 | update_process_times(user_mode(regs)); |
| 138 | #endif | 138 | #endif |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index d4dceb5f06e9..f7d5165796ef 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
| @@ -337,7 +337,7 @@ void timer_tick(struct pt_regs *regs) | |||
| 337 | profile_tick(CPU_PROFILING, regs); | 337 | profile_tick(CPU_PROFILING, regs); |
| 338 | do_leds(); | 338 | do_leds(); |
| 339 | do_set_rtc(); | 339 | do_set_rtc(); |
| 340 | do_timer(regs); | 340 | do_timer(1); |
| 341 | #ifndef CONFIG_SMP | 341 | #ifndef CONFIG_SMP |
| 342 | update_process_times(user_mode(regs)); | 342 | update_process_times(user_mode(regs)); |
| 343 | #endif | 343 | #endif |
diff --git a/arch/arm26/kernel/time.c b/arch/arm26/kernel/time.c index db63d75d0715..80adbd005fc5 100644 --- a/arch/arm26/kernel/time.c +++ b/arch/arm26/kernel/time.c | |||
| @@ -194,7 +194,7 @@ EXPORT_SYMBOL(do_settimeofday); | |||
| 194 | 194 | ||
| 195 | static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | 195 | static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) |
| 196 | { | 196 | { |
| 197 | do_timer(regs); | 197 | do_timer(1); |
| 198 | #ifndef CONFIG_SMP | 198 | #ifndef CONFIG_SMP |
| 199 | update_process_times(user_mode(regs)); | 199 | update_process_times(user_mode(regs)); |
| 200 | #endif | 200 | #endif |
diff --git a/arch/avr32/kernel/time.c b/arch/avr32/kernel/time.c index b0e6b5855a38..3e56b9f4358a 100644 --- a/arch/avr32/kernel/time.c +++ b/arch/avr32/kernel/time.c | |||
| @@ -148,7 +148,7 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 148 | * Call the generic timer interrupt handler | 148 | * Call the generic timer interrupt handler |
| 149 | */ | 149 | */ |
| 150 | write_seqlock(&xtime_lock); | 150 | write_seqlock(&xtime_lock); |
| 151 | do_timer(regs); | 151 | do_timer(1); |
| 152 | write_sequnlock(&xtime_lock); | 152 | write_sequnlock(&xtime_lock); |
| 153 | 153 | ||
| 154 | /* | 154 | /* |
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c index 9c22b76e129a..ebacf1457d91 100644 --- a/arch/cris/arch-v10/kernel/time.c +++ b/arch/cris/arch-v10/kernel/time.c | |||
| @@ -227,7 +227,7 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 227 | 227 | ||
| 228 | /* call the real timer interrupt handler */ | 228 | /* call the real timer interrupt handler */ |
| 229 | 229 | ||
| 230 | do_timer(regs); | 230 | do_timer(1); |
| 231 | 231 | ||
| 232 | cris_do_profile(regs); /* Save profiling information */ | 232 | cris_do_profile(regs); /* Save profiling information */ |
| 233 | 233 | ||
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c index 50f3f93293d6..be0a01657d4f 100644 --- a/arch/cris/arch-v32/kernel/time.c +++ b/arch/cris/arch-v32/kernel/time.c | |||
| @@ -219,7 +219,7 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 219 | return IRQ_HANDLED; | 219 | return IRQ_HANDLED; |
| 220 | 220 | ||
| 221 | /* call the real timer interrupt handler */ | 221 | /* call the real timer interrupt handler */ |
| 222 | do_timer(regs); | 222 | do_timer(1); |
| 223 | 223 | ||
| 224 | /* | 224 | /* |
| 225 | * If we have an externally synchronized Linux clock, then update | 225 | * If we have an externally synchronized Linux clock, then update |
diff --git a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c index 3d0284bccb94..7e55884135ed 100644 --- a/arch/frv/kernel/time.c +++ b/arch/frv/kernel/time.c | |||
| @@ -70,7 +70,7 @@ static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) | |||
| 70 | */ | 70 | */ |
| 71 | write_seqlock(&xtime_lock); | 71 | write_seqlock(&xtime_lock); |
| 72 | 72 | ||
| 73 | do_timer(regs); | 73 | do_timer(1); |
| 74 | update_process_times(user_mode(regs)); | 74 | update_process_times(user_mode(regs)); |
| 75 | profile_tick(CPU_PROFILING, regs); | 75 | profile_tick(CPU_PROFILING, regs); |
| 76 | 76 | ||
diff --git a/arch/h8300/kernel/time.c b/arch/h8300/kernel/time.c index 688a5100604c..e569d17b4ae6 100644 --- a/arch/h8300/kernel/time.c +++ b/arch/h8300/kernel/time.c | |||
| @@ -41,7 +41,7 @@ static void timer_interrupt(int irq, void *dummy, struct pt_regs * regs) | |||
| 41 | /* may need to kick the hardware timer */ | 41 | /* may need to kick the hardware timer */ |
| 42 | platform_timer_eoi(); | 42 | platform_timer_eoi(); |
| 43 | 43 | ||
| 44 | do_timer(regs); | 44 | do_timer(1); |
| 45 | #ifndef CONFIG_SMP | 45 | #ifndef CONFIG_SMP |
| 46 | update_process_times(user_mode(regs)); | 46 | update_process_times(user_mode(regs)); |
| 47 | #endif | 47 | #endif |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 6928ef0d64d8..16262687a103 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
| @@ -78,7 +78,7 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) | |||
| 78 | * xtime_lock. | 78 | * xtime_lock. |
| 79 | */ | 79 | */ |
| 80 | write_seqlock(&xtime_lock); | 80 | write_seqlock(&xtime_lock); |
| 81 | do_timer(regs); | 81 | do_timer(1); |
| 82 | local_cpu_data->itm_next = new_itm; | 82 | local_cpu_data->itm_next = new_itm; |
| 83 | write_sequnlock(&xtime_lock); | 83 | write_sequnlock(&xtime_lock); |
| 84 | } else | 84 | } else |
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index ded0be07a476..7a896893cd28 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c | |||
| @@ -202,7 +202,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 202 | #ifndef CONFIG_SMP | 202 | #ifndef CONFIG_SMP |
| 203 | profile_tick(CPU_PROFILING, regs); | 203 | profile_tick(CPU_PROFILING, regs); |
| 204 | #endif | 204 | #endif |
| 205 | do_timer(regs); | 205 | do_timer(1); |
| 206 | 206 | ||
| 207 | #ifndef CONFIG_SMP | 207 | #ifndef CONFIG_SMP |
| 208 | update_process_times(user_mode(regs)); | 208 | update_process_times(user_mode(regs)); |
diff --git a/arch/m68k/kernel/time.c b/arch/m68k/kernel/time.c index 98e4b1adfa29..1072e4946a4a 100644 --- a/arch/m68k/kernel/time.c +++ b/arch/m68k/kernel/time.c | |||
| @@ -40,7 +40,7 @@ static inline int set_rtc_mmss(unsigned long nowtime) | |||
| 40 | */ | 40 | */ |
| 41 | static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) | 41 | static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) |
| 42 | { | 42 | { |
| 43 | do_timer(regs); | 43 | do_timer(1); |
| 44 | #ifndef CONFIG_SMP | 44 | #ifndef CONFIG_SMP |
| 45 | update_process_times(user_mode(regs)); | 45 | update_process_times(user_mode(regs)); |
| 46 | #endif | 46 | #endif |
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c index f18b9d3ef16d..dc4ea7e074a6 100644 --- a/arch/m68k/sun3/sun3ints.c +++ b/arch/m68k/sun3/sun3ints.c | |||
| @@ -65,7 +65,7 @@ static irqreturn_t sun3_int5(int irq, void *dev_id, struct pt_regs *fp) | |||
| 65 | #ifdef CONFIG_SUN3 | 65 | #ifdef CONFIG_SUN3 |
| 66 | intersil_clear(); | 66 | intersil_clear(); |
| 67 | #endif | 67 | #endif |
| 68 | do_timer(fp); | 68 | do_timer(1); |
| 69 | #ifndef CONFIG_SMP | 69 | #ifndef CONFIG_SMP |
| 70 | update_process_times(user_mode(fp)); | 70 | update_process_times(user_mode(fp)); |
| 71 | #endif | 71 | #endif |
diff --git a/arch/m68knommu/kernel/time.c b/arch/m68knommu/kernel/time.c index 1db987272220..db1e1ce0a349 100644 --- a/arch/m68knommu/kernel/time.c +++ b/arch/m68knommu/kernel/time.c | |||
| @@ -51,7 +51,7 @@ static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) | |||
| 51 | 51 | ||
| 52 | write_seqlock(&xtime_lock); | 52 | write_seqlock(&xtime_lock); |
| 53 | 53 | ||
| 54 | do_timer(regs); | 54 | do_timer(1); |
| 55 | #ifndef CONFIG_SMP | 55 | #ifndef CONFIG_SMP |
| 56 | update_process_times(user_mode(regs)); | 56 | update_process_times(user_mode(regs)); |
| 57 | #endif | 57 | #endif |
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c index 7fbea1bf7b48..0a067f3113a5 100644 --- a/arch/mips/au1000/common/time.c +++ b/arch/mips/au1000/common/time.c | |||
| @@ -96,7 +96,7 @@ void mips_timer_interrupt(struct pt_regs *regs) | |||
| 96 | timerlo = count; | 96 | timerlo = count; |
| 97 | 97 | ||
| 98 | kstat_this_cpu.irqs[irq]++; | 98 | kstat_this_cpu.irqs[irq]++; |
| 99 | do_timer(regs); | 99 | do_timer(1); |
| 100 | #ifndef CONFIG_SMP | 100 | #ifndef CONFIG_SMP |
| 101 | update_process_times(user_mode(regs)); | 101 | update_process_times(user_mode(regs)); |
| 102 | #endif | 102 | #endif |
| @@ -137,7 +137,7 @@ irqreturn_t counter0_irq(int irq, void *dev_id, struct pt_regs *regs) | |||
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | while (time_elapsed > 0) { | 139 | while (time_elapsed > 0) { |
| 140 | do_timer(regs); | 140 | do_timer(1); |
| 141 | #ifndef CONFIG_SMP | 141 | #ifndef CONFIG_SMP |
| 142 | update_process_times(user_mode(regs)); | 142 | update_process_times(user_mode(regs)); |
| 143 | #endif | 143 | #endif |
| @@ -156,7 +156,7 @@ irqreturn_t counter0_irq(int irq, void *dev_id, struct pt_regs *regs) | |||
| 156 | 156 | ||
| 157 | if (jiffie_drift >= 999) { | 157 | if (jiffie_drift >= 999) { |
| 158 | jiffie_drift -= 999; | 158 | jiffie_drift -= 999; |
| 159 | do_timer(regs); /* increment jiffies by one */ | 159 | do_timer(1); /* increment jiffies by one */ |
| 160 | #ifndef CONFIG_SMP | 160 | #ifndef CONFIG_SMP |
| 161 | update_process_times(user_mode(regs)); | 161 | update_process_times(user_mode(regs)); |
| 162 | #endif | 162 | #endif |
diff --git a/arch/mips/gt64120/common/time.c b/arch/mips/gt64120/common/time.c index d837b26fbe51..7feca49350d1 100644 --- a/arch/mips/gt64120/common/time.c +++ b/arch/mips/gt64120/common/time.c | |||
| @@ -34,7 +34,7 @@ static void gt64120_irq(int irq, void *dev_id, struct pt_regs *regs) | |||
| 34 | if (irq_src & 0x00000800) { /* Check for timer interrupt */ | 34 | if (irq_src & 0x00000800) { /* Check for timer interrupt */ |
| 35 | handled = 1; | 35 | handled = 1; |
| 36 | irq_src &= ~0x00000800; | 36 | irq_src &= ~0x00000800; |
| 37 | do_timer(regs); | 37 | do_timer(1); |
| 38 | #ifndef CONFIG_SMP | 38 | #ifndef CONFIG_SMP |
| 39 | update_process_times(user_mode(regs)); | 39 | update_process_times(user_mode(regs)); |
| 40 | #endif | 40 | #endif |
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 170cb67f4ede..6ab8d975a974 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
| @@ -434,7 +434,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 434 | /* | 434 | /* |
| 435 | * call the generic timer interrupt handling | 435 | * call the generic timer interrupt handling |
| 436 | */ | 436 | */ |
| 437 | do_timer(regs); | 437 | do_timer(1); |
| 438 | 438 | ||
| 439 | /* | 439 | /* |
| 440 | * If we have an externally synchronized Linux clock, then update | 440 | * If we have an externally synchronized Linux clock, then update |
diff --git a/arch/mips/momentum/ocelot_g/gt-irq.c b/arch/mips/momentum/ocelot_g/gt-irq.c index 9fb2493fff02..6cd87cf0195a 100644 --- a/arch/mips/momentum/ocelot_g/gt-irq.c +++ b/arch/mips/momentum/ocelot_g/gt-irq.c | |||
| @@ -133,7 +133,7 @@ static irqreturn_t gt64240_p0int_irq(int irq, void *dev, struct pt_regs *regs) | |||
| 133 | MV_WRITE(TIMER_COUNTER_0_3_INTERRUPT_CAUSE, 0x0); | 133 | MV_WRITE(TIMER_COUNTER_0_3_INTERRUPT_CAUSE, 0x0); |
| 134 | 134 | ||
| 135 | /* handle the timer call */ | 135 | /* handle the timer call */ |
| 136 | do_timer(regs); | 136 | do_timer(1); |
| 137 | #ifndef CONFIG_SMP | 137 | #ifndef CONFIG_SMP |
| 138 | update_process_times(user_mode(regs)); | 138 | update_process_times(user_mode(regs)); |
| 139 | #endif | 139 | #endif |
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c index b029ba79c27a..c62a3a9ef867 100644 --- a/arch/mips/sgi-ip27/ip27-timer.c +++ b/arch/mips/sgi-ip27/ip27-timer.c | |||
| @@ -111,7 +111,7 @@ again: | |||
| 111 | kstat_this_cpu.irqs[irq]++; /* kstat only for bootcpu? */ | 111 | kstat_this_cpu.irqs[irq]++; /* kstat only for bootcpu? */ |
| 112 | 112 | ||
| 113 | if (cpu == 0) | 113 | if (cpu == 0) |
| 114 | do_timer(regs); | 114 | do_timer(1); |
| 115 | 115 | ||
| 116 | update_process_times(user_mode(regs)); | 116 | update_process_times(user_mode(regs)); |
| 117 | 117 | ||
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c index 5facc9bff4ef..700df10924dd 100644 --- a/arch/parisc/kernel/time.c +++ b/arch/parisc/kernel/time.c | |||
| @@ -79,7 +79,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
| 79 | #endif | 79 | #endif |
| 80 | if (cpu == 0) { | 80 | if (cpu == 0) { |
| 81 | write_seqlock(&xtime_lock); | 81 | write_seqlock(&xtime_lock); |
| 82 | do_timer(regs); | 82 | do_timer(1); |
| 83 | write_sequnlock(&xtime_lock); | 83 | write_sequnlock(&xtime_lock); |
| 84 | } | 84 | } |
| 85 | } | 85 | } |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 7a3c3f791ade..71f71da98e7d 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
| @@ -693,7 +693,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
| 693 | tb_next_jiffy = tb_last_jiffy + tb_ticks_per_jiffy; | 693 | tb_next_jiffy = tb_last_jiffy + tb_ticks_per_jiffy; |
| 694 | if (per_cpu(last_jiffy, cpu) >= tb_next_jiffy) { | 694 | if (per_cpu(last_jiffy, cpu) >= tb_next_jiffy) { |
| 695 | tb_last_jiffy = tb_next_jiffy; | 695 | tb_last_jiffy = tb_next_jiffy; |
| 696 | do_timer(regs); | 696 | do_timer(1); |
| 697 | timer_recalc_offset(tb_last_jiffy); | 697 | timer_recalc_offset(tb_last_jiffy); |
| 698 | timer_check_rtc(); | 698 | timer_check_rtc(); |
| 699 | } | 699 | } |
diff --git a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c index 6ab8cc7226ab..1e1f31554767 100644 --- a/arch/ppc/kernel/time.c +++ b/arch/ppc/kernel/time.c | |||
| @@ -153,7 +153,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
| 153 | /* We are in an interrupt, no need to save/restore flags */ | 153 | /* We are in an interrupt, no need to save/restore flags */ |
| 154 | write_seqlock(&xtime_lock); | 154 | write_seqlock(&xtime_lock); |
| 155 | tb_last_stamp = jiffy_stamp; | 155 | tb_last_stamp = jiffy_stamp; |
| 156 | do_timer(regs); | 156 | do_timer(1); |
| 157 | 157 | ||
| 158 | /* | 158 | /* |
| 159 | * update the rtc when needed, this should be performed on the | 159 | * update the rtc when needed, this should be performed on the |
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 1981c6199fa2..abab42e9f5f8 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
| @@ -166,7 +166,7 @@ EXPORT_SYMBOL(do_settimeofday); | |||
| 166 | void account_ticks(struct pt_regs *regs) | 166 | void account_ticks(struct pt_regs *regs) |
| 167 | { | 167 | { |
| 168 | __u64 tmp; | 168 | __u64 tmp; |
| 169 | __u32 ticks, xticks; | 169 | __u32 ticks; |
| 170 | 170 | ||
| 171 | /* Calculate how many ticks have passed. */ | 171 | /* Calculate how many ticks have passed. */ |
| 172 | if (S390_lowcore.int_clock < S390_lowcore.jiffy_timer) { | 172 | if (S390_lowcore.int_clock < S390_lowcore.jiffy_timer) { |
| @@ -204,6 +204,7 @@ void account_ticks(struct pt_regs *regs) | |||
| 204 | */ | 204 | */ |
| 205 | write_seqlock(&xtime_lock); | 205 | write_seqlock(&xtime_lock); |
| 206 | if (S390_lowcore.jiffy_timer > xtime_cc) { | 206 | if (S390_lowcore.jiffy_timer > xtime_cc) { |
| 207 | __u32 xticks; | ||
| 207 | tmp = S390_lowcore.jiffy_timer - xtime_cc; | 208 | tmp = S390_lowcore.jiffy_timer - xtime_cc; |
| 208 | if (tmp >= 2*CLK_TICKS_PER_JIFFY) { | 209 | if (tmp >= 2*CLK_TICKS_PER_JIFFY) { |
| 209 | xticks = __div(tmp, CLK_TICKS_PER_JIFFY); | 210 | xticks = __div(tmp, CLK_TICKS_PER_JIFFY); |
| @@ -212,13 +213,11 @@ void account_ticks(struct pt_regs *regs) | |||
| 212 | xticks = 1; | 213 | xticks = 1; |
| 213 | xtime_cc += CLK_TICKS_PER_JIFFY; | 214 | xtime_cc += CLK_TICKS_PER_JIFFY; |
| 214 | } | 215 | } |
| 215 | while (xticks--) | 216 | do_timer(xticks); |
| 216 | do_timer(regs); | ||
| 217 | } | 217 | } |
| 218 | write_sequnlock(&xtime_lock); | 218 | write_sequnlock(&xtime_lock); |
| 219 | #else | 219 | #else |
| 220 | for (xticks = ticks; xticks > 0; xticks--) | 220 | do_timer(ticks); |
| 221 | do_timer(regs); | ||
| 222 | #endif | 221 | #endif |
| 223 | 222 | ||
| 224 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 223 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
diff --git a/arch/sh/kernel/time.c b/arch/sh/kernel/time.c index 149d9713eddf..f664a196c4f5 100644 --- a/arch/sh/kernel/time.c +++ b/arch/sh/kernel/time.c | |||
| @@ -117,7 +117,7 @@ static long last_rtc_update; | |||
| 117 | */ | 117 | */ |
| 118 | void handle_timer_tick(struct pt_regs *regs) | 118 | void handle_timer_tick(struct pt_regs *regs) |
| 119 | { | 119 | { |
| 120 | do_timer(regs); | 120 | do_timer(1); |
| 121 | #ifndef CONFIG_SMP | 121 | #ifndef CONFIG_SMP |
| 122 | update_process_times(user_mode(regs)); | 122 | update_process_times(user_mode(regs)); |
| 123 | #endif | 123 | #endif |
diff --git a/arch/sh64/kernel/time.c b/arch/sh64/kernel/time.c index b8162e59030e..3b61e06f9d72 100644 --- a/arch/sh64/kernel/time.c +++ b/arch/sh64/kernel/time.c | |||
| @@ -298,7 +298,7 @@ static inline void do_timer_interrupt(int irq, struct pt_regs *regs) | |||
| 298 | asm ("getcon cr62, %0" : "=r" (current_ctc)); | 298 | asm ("getcon cr62, %0" : "=r" (current_ctc)); |
| 299 | ctc_last_interrupt = (unsigned long) current_ctc; | 299 | ctc_last_interrupt = (unsigned long) current_ctc; |
| 300 | 300 | ||
| 301 | do_timer(regs); | 301 | do_timer(1); |
| 302 | #ifndef CONFIG_SMP | 302 | #ifndef CONFIG_SMP |
| 303 | update_process_times(user_mode(regs)); | 303 | update_process_times(user_mode(regs)); |
| 304 | #endif | 304 | #endif |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index bfd31aac2df3..e19b1bad9bc5 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
| @@ -712,7 +712,7 @@ static irqreturn_t pcic_timer_handler (int irq, void *h, struct pt_regs *regs) | |||
| 712 | { | 712 | { |
| 713 | write_seqlock(&xtime_lock); /* Dummy, to show that we remember */ | 713 | write_seqlock(&xtime_lock); /* Dummy, to show that we remember */ |
| 714 | pcic_clear_clock_irq(); | 714 | pcic_clear_clock_irq(); |
| 715 | do_timer(regs); | 715 | do_timer(1); |
| 716 | #ifndef CONFIG_SMP | 716 | #ifndef CONFIG_SMP |
| 717 | update_process_times(user_mode(regs)); | 717 | update_process_times(user_mode(regs)); |
| 718 | #endif | 718 | #endif |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index 845081b01267..6f84fa1b58e5 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
| @@ -128,7 +128,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
| 128 | #endif | 128 | #endif |
| 129 | clear_clock_irq(); | 129 | clear_clock_irq(); |
| 130 | 130 | ||
| 131 | do_timer(regs); | 131 | do_timer(1); |
| 132 | #ifndef CONFIG_SMP | 132 | #ifndef CONFIG_SMP |
| 133 | update_process_times(user_mode(regs)); | 133 | update_process_times(user_mode(regs)); |
| 134 | #endif | 134 | #endif |
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index b0b4feeec098..ca1193482f07 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
| @@ -465,7 +465,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
| 465 | profile_tick(CPU_PROFILING, regs); | 465 | profile_tick(CPU_PROFILING, regs); |
| 466 | update_process_times(user_mode(regs)); | 466 | update_process_times(user_mode(regs)); |
| 467 | #endif | 467 | #endif |
| 468 | do_timer(regs); | 468 | do_timer(1); |
| 469 | 469 | ||
| 470 | /* Guarantee that the following sequences execute | 470 | /* Guarantee that the following sequences execute |
| 471 | * uninterrupted. | 471 | * uninterrupted. |
| @@ -496,7 +496,7 @@ void timer_tick_interrupt(struct pt_regs *regs) | |||
| 496 | { | 496 | { |
| 497 | write_seqlock(&xtime_lock); | 497 | write_seqlock(&xtime_lock); |
| 498 | 498 | ||
| 499 | do_timer(regs); | 499 | do_timer(1); |
| 500 | 500 | ||
| 501 | timer_check_rtc(); | 501 | timer_check_rtc(); |
| 502 | 502 | ||
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index 820affbf3e16..a92965f8f9cd 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c | |||
| @@ -93,7 +93,7 @@ irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs) | |||
| 93 | 93 | ||
| 94 | write_seqlock_irqsave(&xtime_lock, flags); | 94 | write_seqlock_irqsave(&xtime_lock, flags); |
| 95 | 95 | ||
| 96 | do_timer(regs); | 96 | do_timer(1); |
| 97 | 97 | ||
| 98 | nsecs = get_time(); | 98 | nsecs = get_time(); |
| 99 | xtime.tv_sec = nsecs / NSEC_PER_SEC; | 99 | xtime.tv_sec = nsecs / NSEC_PER_SEC; |
diff --git a/arch/v850/kernel/time.c b/arch/v850/kernel/time.c index a0b46695f186..f4d1a4d3cdc2 100644 --- a/arch/v850/kernel/time.c +++ b/arch/v850/kernel/time.c | |||
| @@ -51,7 +51,7 @@ static irqreturn_t timer_interrupt (int irq, void *dummy, struct pt_regs *regs) | |||
| 51 | if (mach_tick) | 51 | if (mach_tick) |
| 52 | mach_tick (); | 52 | mach_tick (); |
| 53 | 53 | ||
| 54 | do_timer (regs); | 54 | do_timer (1); |
| 55 | #ifndef CONFIG_SMP | 55 | #ifndef CONFIG_SMP |
| 56 | update_process_times(user_mode(regs)); | 56 | update_process_times(user_mode(regs)); |
| 57 | #endif | 57 | #endif |
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c index 1c255ee76e7c..7ea3bf2a858c 100644 --- a/arch/x86_64/kernel/time.c +++ b/arch/x86_64/kernel/time.c | |||
| @@ -415,16 +415,16 @@ void main_timer_handler(struct pt_regs *regs) | |||
| 415 | (((long) offset << US_SCALE) / vxtime.tsc_quot) - 1; | 415 | (((long) offset << US_SCALE) / vxtime.tsc_quot) - 1; |
| 416 | } | 416 | } |
| 417 | 417 | ||
| 418 | if (lost > 0) { | 418 | if (lost > 0) |
| 419 | handle_lost_ticks(lost, regs); | 419 | handle_lost_ticks(lost, regs); |
| 420 | jiffies += lost; | 420 | else |
| 421 | } | 421 | lost = 0; |
| 422 | 422 | ||
| 423 | /* | 423 | /* |
| 424 | * Do the timer stuff. | 424 | * Do the timer stuff. |
| 425 | */ | 425 | */ |
| 426 | 426 | ||
| 427 | do_timer(regs); | 427 | do_timer(lost + 1); |
| 428 | #ifndef CONFIG_SMP | 428 | #ifndef CONFIG_SMP |
| 429 | update_process_times(user_mode(regs)); | 429 | update_process_times(user_mode(regs)); |
| 430 | #endif | 430 | #endif |
diff --git a/arch/xtensa/kernel/time.c b/arch/xtensa/kernel/time.c index 412ab32de391..241db201f40e 100644 --- a/arch/xtensa/kernel/time.c +++ b/arch/xtensa/kernel/time.c | |||
| @@ -175,7 +175,7 @@ again: | |||
| 175 | 175 | ||
| 176 | last_ccount_stamp = next; | 176 | last_ccount_stamp = next; |
| 177 | next += CCOUNT_PER_JIFFY; | 177 | next += CCOUNT_PER_JIFFY; |
| 178 | do_timer (regs); /* Linux handler in kernel/timer.c */ | 178 | do_timer (1); /* Linux handler in kernel/timer.c */ |
| 179 | 179 | ||
| 180 | if (ntp_synced() && | 180 | if (ntp_synced() && |
| 181 | xtime.tv_sec - last_rtc_update >= 659 && | 181 | xtime.tv_sec - last_rtc_update >= 659 && |
