diff options
author | Torben Hohn <torbenh@gmx.de> | 2011-01-27 09:59:15 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-01-31 08:55:43 -0500 |
commit | 1340f3e0b29b745a33f431455c3a37f48197bc81 (patch) | |
tree | b796639443802af39b9ea7c4bfcdbab1fa9c85d9 /arch | |
parent | f0af911a9dec9de702645182c8d269449e24d24b (diff) |
alpha: Change do_timer() to xtime_update()
xtime_update() takes the xtime_lock itself.
timer_interrupt() is only called on the boot cpu. See do_entInt(). So
"state" in timer_interrupt does not require protection by xtime_lock.
Signed-off-by: Torben Hohn <torbenh@gmx.de>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: johnstul@us.ibm.com
Cc: hch@infradead.org
Cc: yong.zhang0@gmail.com
LKML-Reference: <20110127145915.23248.20919.stgit@localhost>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/kernel/time.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c index c1f3e7cb82a4..a58e84f1a63b 100644 --- a/arch/alpha/kernel/time.c +++ b/arch/alpha/kernel/time.c | |||
@@ -159,7 +159,7 @@ void read_persistent_clock(struct timespec *ts) | |||
159 | 159 | ||
160 | /* | 160 | /* |
161 | * timer_interrupt() needs to keep up the real-time clock, | 161 | * timer_interrupt() needs to keep up the real-time clock, |
162 | * as well as call the "do_timer()" routine every clocktick | 162 | * as well as call the "xtime_update()" routine every clocktick |
163 | */ | 163 | */ |
164 | irqreturn_t timer_interrupt(int irq, void *dev) | 164 | irqreturn_t timer_interrupt(int irq, void *dev) |
165 | { | 165 | { |
@@ -172,8 +172,6 @@ irqreturn_t timer_interrupt(int irq, void *dev) | |||
172 | profile_tick(CPU_PROFILING); | 172 | profile_tick(CPU_PROFILING); |
173 | #endif | 173 | #endif |
174 | 174 | ||
175 | write_seqlock(&xtime_lock); | ||
176 | |||
177 | /* | 175 | /* |
178 | * Calculate how many ticks have passed since the last update, | 176 | * Calculate how many ticks have passed since the last update, |
179 | * including any previous partial leftover. Save any resulting | 177 | * including any previous partial leftover. Save any resulting |
@@ -187,9 +185,7 @@ irqreturn_t timer_interrupt(int irq, void *dev) | |||
187 | nticks = delta >> FIX_SHIFT; | 185 | nticks = delta >> FIX_SHIFT; |
188 | 186 | ||
189 | if (nticks) | 187 | if (nticks) |
190 | do_timer(nticks); | 188 | xtime_update(nticks); |
191 | |||
192 | write_sequnlock(&xtime_lock); | ||
193 | 189 | ||
194 | if (test_irq_work_pending()) { | 190 | if (test_irq_work_pending()) { |
195 | clear_irq_work_pending(); | 191 | clear_irq_work_pending(); |