diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-01-28 05:16:37 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-01-28 05:17:12 -0500 |
commit | 193c3cc12583344be01206078d9ad3fec5dbc397 (patch) | |
tree | 97eb5d6ec88969d21fbf0c5815e3b77e8e1f4aaf /arch/arm/mach-sa1100/time.c | |
parent | 6232be32afa121628c72291ce7eaa24a639905c2 (diff) |
[ARM] Fix timer damage from d3d74453c34f8fd87674a8cf5b8a327c68f22e99
Move the xtime write mode seqlock into timer_tick(), so it only
surrounds the call to do_timer().
This avoids a deadlock in update_process_times() ...
hrtimer_get_softirq_time() which tries to get a read mode seqlock
on xtime, thereby preventing booting.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-sa1100/time.c')
-rw-r--r-- | arch/arm/mach-sa1100/time.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c index fdf7b016e7ad..47f8640438e6 100644 --- a/arch/arm/mach-sa1100/time.c +++ b/arch/arm/mach-sa1100/time.c | |||
@@ -62,8 +62,6 @@ sa1100_timer_interrupt(int irq, void *dev_id) | |||
62 | { | 62 | { |
63 | unsigned int next_match; | 63 | unsigned int next_match; |
64 | 64 | ||
65 | write_seqlock(&xtime_lock); | ||
66 | |||
67 | #ifdef CONFIG_NO_IDLE_HZ | 65 | #ifdef CONFIG_NO_IDLE_HZ |
68 | if (match_posponed) { | 66 | if (match_posponed) { |
69 | match_posponed = 0; | 67 | match_posponed = 0; |
@@ -85,8 +83,6 @@ sa1100_timer_interrupt(int irq, void *dev_id) | |||
85 | next_match = (OSMR0 += LATCH); | 83 | next_match = (OSMR0 += LATCH); |
86 | } while ((signed long)(next_match - OSCR) <= 0); | 84 | } while ((signed long)(next_match - OSCR) <= 0); |
87 | 85 | ||
88 | write_sequnlock(&xtime_lock); | ||
89 | |||
90 | return IRQ_HANDLED; | 86 | return IRQ_HANDLED; |
91 | } | 87 | } |
92 | 88 | ||