From: Glauber de Oliveira Costa Date: Wed, 19 Mar 2008 17:25:41 +0000 (-0300) Subject: x86: schedule work only if keventd is already running X-Git-Tag: v2.6.26-rc1~1154^2~356 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=802b8133b4f78c30a2668d142d78861e27c0c6a7;p=linux-2.6 x86: schedule work only if keventd is already running Only call schedule_work if keventd is already running. This is already the way x86_64 does Signed-off-by: Glauber Costa Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c index 5cae17f3eb..255c6f7614 100644 --- a/arch/x86/kernel/smpboot_32.c +++ b/arch/x86/kernel/smpboot_32.c @@ -708,8 +708,12 @@ static void __cpuinit __smp_prepare_cpu(int cpu) clone_pgd_range(swapper_pg_dir, swapper_pg_dir + USER_PGD_PTRS, min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS)); flush_tlb_all(); - schedule_work(&info.task); - wait_for_completion(&done); + if (!keventd_up() || current_is_keventd()) + info.task.func(&info.task); + else { + schedule_work(&info.task); + wait_for_completion(&done); + } zap_low_mappings(); }