diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-02-01 16:27:02 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-02-04 08:14:07 -0500 |
commit | 66a2c077c36ee5c56e77ba3757702c4464011da6 (patch) | |
tree | 7a6d3f59e540f26f866fe7ed38ad01a01311a1a4 /arch/arm/mach-at91 | |
parent | 2f65baff3ab546d011b0e3f944eccd1ec5816d5d (diff) |
[ARM] xtime_seqlock: fix more ARM machines for xtime deadlocking
move update_process_times() out from under xtime_lock.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-at91')
-rw-r--r-- | arch/arm/mach-at91/at91sam926x_time.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index 5c090c9442f5..e38d23770992 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c | |||
@@ -49,8 +49,6 @@ static irqreturn_t at91sam926x_timer_interrupt(int irq, void *dev_id) | |||
49 | volatile long nr_ticks; | 49 | volatile long nr_ticks; |
50 | 50 | ||
51 | if (at91_sys_read(AT91_PIT_SR) & AT91_PIT_PITS) { /* This is a shared interrupt */ | 51 | if (at91_sys_read(AT91_PIT_SR) & AT91_PIT_PITS) { /* This is a shared interrupt */ |
52 | write_seqlock(&xtime_lock); | ||
53 | |||
54 | /* Get number to ticks performed before interrupt and clear PIT interrupt */ | 52 | /* Get number to ticks performed before interrupt and clear PIT interrupt */ |
55 | nr_ticks = PIT_PICNT(at91_sys_read(AT91_PIT_PIVR)); | 53 | nr_ticks = PIT_PICNT(at91_sys_read(AT91_PIT_PIVR)); |
56 | do { | 54 | do { |
@@ -58,7 +56,6 @@ static irqreturn_t at91sam926x_timer_interrupt(int irq, void *dev_id) | |||
58 | nr_ticks--; | 56 | nr_ticks--; |
59 | } while (nr_ticks); | 57 | } while (nr_ticks); |
60 | 58 | ||
61 | write_sequnlock(&xtime_lock); | ||
62 | return IRQ_HANDLED; | 59 | return IRQ_HANDLED; |
63 | } else | 60 | } else |
64 | return IRQ_NONE; /* not handled */ | 61 | return IRQ_NONE; /* not handled */ |