[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>

authored by Peter Zijlstra and committed by Russell King 66a2c077 2f65baff

-11
-2
arch/arm/common/time-acorn.c
··· 69 69 static irqreturn_t 70 70 ioc_timer_interrupt(int irq, void *dev_id) 71 71 { 72 - write_seqlock(&xtime_lock); 73 72 timer_tick(); 74 - write_sequnlock(&xtime_lock); 75 73 return IRQ_HANDLED; 76 74 } 77 75
-3
arch/arm/mach-at91/at91sam926x_time.c
··· 49 49 volatile long nr_ticks; 50 50 51 51 if (at91_sys_read(AT91_PIT_SR) & AT91_PIT_PITS) { /* This is a shared interrupt */ 52 - write_seqlock(&xtime_lock); 53 - 54 52 /* Get number to ticks performed before interrupt and clear PIT interrupt */ 55 53 nr_ticks = PIT_PICNT(at91_sys_read(AT91_PIT_PIVR)); 56 54 do { ··· 56 58 nr_ticks--; 57 59 } while (nr_ticks); 58 60 59 - write_sequnlock(&xtime_lock); 60 61 return IRQ_HANDLED; 61 62 } else 62 63 return IRQ_NONE; /* not handled */
-4
arch/arm/plat-iop/time.c
··· 57 57 static irqreturn_t 58 58 iop_timer_interrupt(int irq, void *dev_id) 59 59 { 60 - write_seqlock(&xtime_lock); 61 - 62 60 write_tisr(1); 63 61 64 62 while ((signed long)(next_jiffy_time - read_tcr1()) ··· 64 66 timer_tick(); 65 67 next_jiffy_time -= ticks_per_jiffy; 66 68 } 67 - 68 - write_sequnlock(&xtime_lock); 69 69 70 70 return IRQ_HANDLED; 71 71 }
-2
arch/arm/plat-s3c24xx/time.c
··· 130 130 static irqreturn_t 131 131 s3c2410_timer_interrupt(int irq, void *dev_id) 132 132 { 133 - write_seqlock(&xtime_lock); 134 133 timer_tick(); 135 - write_sequnlock(&xtime_lock); 136 134 return IRQ_HANDLED; 137 135 } 138 136