[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: Olof Johansson <olof@lixom.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Olof Johansson 2005-08-04 12:53:29 -07:00 committed by Linus Torvalds
parent 556e58febf
commit 75eedfed3e
2 changed files with 6 additions and 2 deletions

View File

@ -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

View File

@ -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();