summaryrefslogtreecommitdiffstats
path: root/arch/um
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2005-07-29 06:16:09 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-29 06:46:04 +0200
commit7e1f49da6881bbf938e502d99335ad5488eb93b4 (patch)
tree8ca765ab1f9ac081bd797b23c4355441b9f75966 /arch/um
parent[PATCH] uml: Fix redundant assignment (diff)
downloadlinux-7e1f49da6881bbf938e502d99335ad5488eb93b4.tar.xz
linux-7e1f49da6881bbf938e502d99335ad5488eb93b4.zip
[PATCH] uml: Fix load average >=1
update_process_times was missing its irq_enter/irq_exit wrapper. This caused ksoftirqd to be scheduled on every clock tick. Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' 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/time_kern.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/um/kernel/time_kern.c b/arch/um/kernel/time_kern.c
index a8b4ef601f59..4e08f7545d63 100644
--- a/arch/um/kernel/time_kern.c
+++ b/arch/um/kernel/time_kern.c
@@ -137,7 +137,10 @@ long um_stime(int __user *tptr)
void timer_handler(int sig, union uml_pt_regs *regs)
{
local_irq_disable();
- update_process_times(CHOOSE_MODE(user_context(UPT_SP(regs)), (regs)->skas.is_user));
+ irq_enter();
+ update_process_times(CHOOSE_MODE(user_context(UPT_SP(regs)),
+ (regs)->skas.is_user));
+ irq_exit();
local_irq_enable();
if(current_thread->cpu == 0)
timer_irq(regs);