aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2005-06-25 17:55:22 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 19:24:35 -0400
commita6f4e3cf75538a75ee4fab620e3c8466f2154458 (patch)
tree2adc3dac915abfce031d6cf3d669bfdfb4a134e8 /arch/um
parente0877f07e85a46e4fde32bd84f08551d360839fe (diff)
[PATCH] uml: fix timer initialization
In skas mode, the call to uml_idle_timer permanently shut off the virtual timer, resulting in no timer ticks to anything but the idle thread. This is likely the cause of the soft lockups that are seen sporadically in recent UMLs. Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um')
-rw-r--r--arch/um/kernel/process_kern.c2
-rw-r--r--arch/um/kernel/skas/process_kern.c1
2 files changed, 1 insertions, 2 deletions
diff --git a/arch/um/kernel/process_kern.c b/arch/um/kernel/process_kern.c
index 0c57bc6e3747..d4036ed680bc 100644
--- a/arch/um/kernel/process_kern.c
+++ b/arch/um/kernel/process_kern.c
@@ -169,7 +169,7 @@ int current_pid(void)
169 169
170void default_idle(void) 170void default_idle(void)
171{ 171{
172 uml_idle_timer(); 172 CHOOSE_MODE(uml_idle_timer(), (void) 0);
173 173
174 atomic_inc(&init_mm.mm_count); 174 atomic_inc(&init_mm.mm_count);
175 current->mm = &init_mm; 175 current->mm = &init_mm;
diff --git a/arch/um/kernel/skas/process_kern.c b/arch/um/kernel/skas/process_kern.c
index 8f0607f54b7a..0a7b8aa55db8 100644
--- a/arch/um/kernel/skas/process_kern.c
+++ b/arch/um/kernel/skas/process_kern.c
@@ -180,7 +180,6 @@ int start_uml_skas(void)
180 start_userspace(0); 180 start_userspace(0);
181 181
182 init_new_thread_signals(1); 182 init_new_thread_signals(1);
183 uml_idle_timer();
184 183
185 init_task.thread.request.u.thread.proc = start_kernel_proc; 184 init_task.thread.request.u.thread.proc = start_kernel_proc;
186 init_task.thread.request.u.thread.arg = NULL; 185 init_task.thread.request.u.thread.arg = NULL;