Re: [PATCH] MIPS: paravirt: Fix undefined reference to smp_bootstrap

From: Ralf Baechle
Date: Tue Sep 13 2016 - 10:49:17 EST


On Mon, Sep 05, 2016 at 03:43:40PM +0100, Matt Redfearn wrote:

> If the paravirt machine is compiles without CONFIG_SMP, the following
> linker error occurs
>
> arch/mips/kernel/head.o: In function `kernel_entry':
> (.ref.text+0x10): undefined reference to `smp_bootstrap'
>
> due to the kernel entry macro always including SMP startup code.
> Wrap this code in CONFIG_SMP to fix the error.
>
> Signed-off-by: Matt Redfearn <matt.redfearn@xxxxxxxxxx>

Thanks, applied. This patch should be applied to 3.16+ also so I've
added a Cc: stable... tag.

Ralf

> arch/mips/include/asm/mach-paravirt/kernel-entry-init.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h b/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h
> index 2f82bfa3a773..c9f5769dfc8f 100644
> --- a/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h
> +++ b/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h
> @@ -11,11 +11,13 @@
> #define CP0_EBASE $15, 1
>
> .macro kernel_entry_setup
> +#ifdef CONFIG_SMP
> mfc0 t0, CP0_EBASE
> andi t0, t0, 0x3ff # CPUNum
> beqz t0, 1f
> # CPUs other than zero goto smp_bootstrap
> j smp_bootstrap
> +#endif /* CONFIG_SMP */
>
> 1:
> .endm
> --
> 2.7.4
>