[RFC PATCH v3 2/8] arm64: Move cpu_die_early to smp.c

Will Deacon will.deacon at arm.com
Tue Dec 15 03:23:39 PST 2015


On Wed, Dec 09, 2015 at 09:57:13AM +0000, Suzuki K. Poulose wrote:
> This patch moves cpu_die_early to smp.c, where it fits better.
> No functional changes, except for adding the necessary checks
> for CONFIG_HOTPLUG_CPU.
> 
> Cc: Will Deacon <will.deacon at arm.com>
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose at arm.com>
> ---
>  arch/arm64/include/asm/smp.h   |    1 +
>  arch/arm64/kernel/cpufeature.c |   23 -----------------------
>  arch/arm64/kernel/smp.c        |   25 +++++++++++++++++++++++++
>  3 files changed, 26 insertions(+), 23 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/smp.h b/arch/arm64/include/asm/smp.h
> index d9c3d6a..13ce01f 100644
> --- a/arch/arm64/include/asm/smp.h
> +++ b/arch/arm64/include/asm/smp.h
> @@ -68,5 +68,6 @@ extern int __cpu_disable(void);
>  
>  extern void __cpu_die(unsigned int cpu);
>  extern void cpu_die(void);
> +extern void cpu_die_early(void);
>  
>  #endif /* ifndef __ASM_SMP_H */
> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> index 581b779..517a3af 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -826,29 +826,6 @@ static u64 __raw_read_system_reg(u32 sys_id)
>  }
>  
>  /*
> - * Kill the calling secondary CPU, early in bringup before it is turned
> - * online.
> - */
> -void cpu_die_early(void)
> -{
> -	int cpu = smp_processor_id();
> -
> -	pr_crit("CPU%d: will not boot\n", cpu);
> -
> -	/* Mark this CPU absent */
> -	set_cpu_present(cpu, 0);
> -
> -	/* Check if we can park ourselves */
> -	if (cpu_ops[cpu] && cpu_ops[cpu]->cpu_die)
> -		cpu_ops[cpu]->cpu_die(cpu);
> -
> -	for (;;) {
> -		wfe();
> -		wfi();
> -	}
> -}
> -
> -/*
>   * Run through the enabled system capabilities and enable() it on this CPU.
>   * The capabilities were decided based on the available CPUs at the boot time.
>   * Any new CPU should match the system wide status of the capability. If the
> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
> index b1adc51..607d876 100644
> --- a/arch/arm64/kernel/smp.c
> +++ b/arch/arm64/kernel/smp.c
> @@ -313,6 +313,31 @@ void cpu_die(void)
>  }
>  #endif
>  
> +/*
> + * Kill the calling secondary CPU, early in bringup before it is turned
> + * online.
> + */
> +void cpu_die_early(void)
> +{
> +	int cpu = smp_processor_id();
> +
> +	pr_crit("CPU%d: will not boot\n", cpu);
> +
> +	/* Mark this CPU absent */
> +	set_cpu_present(cpu, 0);
> +
> +#ifdef CONFIG_HOTPLUG_CPU
> +	/* Check if we can park ourselves */
> +	if (cpu_ops[cpu] && cpu_ops[cpu]->cpu_die)

IS_ENABLED?

Will



More information about the linux-arm-kernel mailing list