diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-10 18:35:44 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-10 18:35:44 +0100 |
commit | d71cb81af3817193bc605de061da0499934263a6 (patch) | |
tree | f7ff95e0cf0cdf00234be29ba4050135314ab859 /arch/x86 | |
parent | Merge branch 'bugfix' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy... (diff) | |
parent | workqueue: Add debugobjects support (diff) | |
download | linux-d71cb81af3817193bc605de061da0499934263a6.tar.xz linux-d71cb81af3817193bc605de061da0499934263a6.zip |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
workqueue: Add debugobjects support
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 324f2a44c221..29e6744f51e3 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -687,7 +687,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu) .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), }; - INIT_WORK(&c_idle.work, do_fork_idle); + INIT_WORK_ON_STACK(&c_idle.work, do_fork_idle); alternatives_smp_switch(1); @@ -713,6 +713,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu) if (IS_ERR(c_idle.idle)) { printk("failed fork for CPU %d\n", cpu); + destroy_work_on_stack(&c_idle.work); return PTR_ERR(c_idle.idle); } @@ -831,6 +832,7 @@ do_rest: smpboot_restore_warm_reset_vector(); } + destroy_work_on_stack(&c_idle.work); return boot_error; } |