The update_process_times() should go outside xtime_lock. Otherwise it
will run into deadlock.
Signed-off-by: Thomas Chou <[EMAIL PROTECTED]>
---
linux-2.6.x/arch/nios2nommu/kernel/time.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/linux-2.6.x/arch/nios2nommu/kernel/time.c
b/linux-2.6.x/arch/nios2nommu/kernel/time.c
index a98e22e..845414c 100644
--- a/linux-2.6.x/arch/nios2nommu/kernel/time.c
+++ b/linux-2.6.x/arch/nios2nommu/kernel/time.c
@@ -100,9 +100,6 @@ irqreturn_t timer_interrupt(int irq, void *dummy)
na_timer0->np_timerstatus = 0; /* Clear the interrupt condition */
do_timer(1);
-#ifndef CONFIG_SMP
- update_process_times(user_mode(get_irq_regs()));
-#endif
profile_tick(CPU_PROFILING);
/*
* If we have an externally synchronized Linux clock, then update
@@ -120,6 +117,11 @@ irqreturn_t timer_interrupt(int irq, void *dummy)
}
write_sequnlock(&xtime_lock);
+
+#ifndef CONFIG_SMP
+ update_process_times(user_mode(get_irq_regs()));
+#endif
+
return(IRQ_HANDLED);
}
--
1.5.3.3
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev