Skip to content

Commit

Permalink
[PATCH] ppc64: Fix UP kernel build
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Olof Johansson authored and Linus Torvalds committed Aug 4, 2005
1 parent 556e58f commit 75eedfe
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
2 changes: 1 addition & 1 deletion arch/ppc64/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion arch/ppc64/kernel/machine_kexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit 75eedfe

Please sign in to comment.