Commit 75eedfed authored by Olof Johansson's avatar Olof Johansson Committed by Linus Torvalds

[PATCH] ppc64: Fix UP kernel build

CONFIG_KEXEC breaks UP builds because of a misspelled smp_release_cpus().
Also, the function isn't defined unless built with CONFIG_SMP but it is
needed if we are to go from a UP to SMP kernel.  Enable it and document it.

Thanks to Steven Winiecki for reporting this and to Milton for remembering
how it's supposed to work and why.
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 556e58fe
......@@ -2071,7 +2071,7 @@ _GLOBAL(hmt_start_secondary)
blr
#endif
#if defined(CONFIG_SMP) && !defined(CONFIG_PPC_ISERIES)
#if defined(CONFIG_KEXEC) || (defined(CONFIG_SMP) && !defined(CONFIG_PPC_ISERIES))
_GLOBAL(smp_release_cpus)
/* All secondary cpus are spinning on a common
* spinloop, release them all now so they can start
......
......@@ -243,13 +243,17 @@ static void kexec_prepare_cpus(void)
static void kexec_prepare_cpus(void)
{
extern void smp_release_cpus(void);
/*
* move the secondarys to us so that we can copy
* the new kernel 0-0x100 safely
*
* do this if kexec in setup.c ?
*
* We need to release the cpus if we are ever going from an
* UP to an SMP kernel.
*/
smp_relase_cpus();
smp_release_cpus();
if (ppc_md.cpu_irq_down)
ppc_md.cpu_irq_down();
local_irq_disable();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment