diff options
author | Jeff Dike <jdike@addtoit.com> | 2005-07-29 06:16:09 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-29 06:46:04 +0200 |
commit | 7e1f49da6881bbf938e502d99335ad5488eb93b4 (patch) | |
tree | 8ca765ab1f9ac081bd797b23c4355441b9f75966 /arch/um | |
parent | [PATCH] uml: Fix redundant assignment (diff) | |
download | linux-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.c | 5 |
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); |