aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/time.c')
-rw-r--r--arch/s390/kernel/time.c9
1 files changed, 4 insertions, 5 deletions
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);
166void account_ticks(struct pt_regs *regs) 166void 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