diff options
author | David Howells <dhowells@redhat.com> | 2008-02-19 21:58:49 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-20 02:51:36 +0300 |
commit | 2b79aac9038ee52fd8d89216b1a3ec9bd8285fac (patch) | |
tree | b63476e3926eec36db0c59f37362842f96269de9 /arch/mn10300 | |
parent | e855e5d82edd708bcb966cf7ccda2dee1c154935 (diff) | |
download | linux-2b79aac9038ee52fd8d89216b1a3ec9bd8285fac.tar.xz |
MN10300: Call update_process_times() outside of the xtime_lock
Call update_process_times() outside of the xtime_lock. Somewhere somewhere
inside one of the functions called by that, xtime_lock is readlocked, which
ends up in a deadlock situation.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/mn10300')
-rw-r--r-- | arch/mn10300/kernel/time.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/mn10300/kernel/time.c b/arch/mn10300/kernel/time.c index ff492e3b3457..babb7c2ac377 100644 --- a/arch/mn10300/kernel/time.c +++ b/arch/mn10300/kernel/time.c @@ -84,11 +84,13 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id) /* advance the kernel's time tracking system */ profile_tick(CPU_PROFILING); do_timer(1); - update_process_times(user_mode(get_irq_regs())); check_rtc_time(); } write_sequnlock(&xtime_lock); + + update_process_times(user_mode(get_irq_regs())); + return IRQ_HANDLED; } |