Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+5 −1
Original line number Diff line number Diff line
@@ -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();