[PATCH v2 1/3] arm64: remove processor_id

Mark Rutland mark.rutland at arm.com
Wed Mar 4 03:57:18 PST 2015


Hi Ard,

On Wed, Mar 04, 2015 at 11:23:15AM +0000, Ard Biesheuvel wrote:
> The global processor_id is assigned the MIDR_EL1 value of the boot
> CPU in the early init code, but is never referenced afterwards.

I think it's also worth noting that it's also non-sensical and
misleading for big.LITTLE systems, and getting rid of it removes the
potential for confusion.

> So remove it.
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> ---
>  arch/arm64/kernel/head.S  | 10 +++-------
>  arch/arm64/kernel/setup.c |  3 ---
>  2 files changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
> index 8ce88e08c030..003db2eadd7a 100644
> --- a/arch/arm64/kernel/head.S
> +++ b/arch/arm64/kernel/head.S
> @@ -244,8 +244,7 @@ ENTRY(stext)
>  	bl	el2_setup			// Drop to EL1, w20=cpu_boot_mode
>  	bl	__calc_phys_offset		// x24=PHYS_OFFSET, x28=PHYS_OFFSET-PAGE_OFFSET
>  	bl	set_cpu_boot_mode_flag
> -	mrs	x22, midr_el1			// x22=cpuid
> -	mov	x0, x22
> +	mrs	x0, midr_el1
>  	bl	lookup_processor_type
>  	mov	x23, x0				// x23=current cpu_table
>  	/*
> @@ -439,7 +438,6 @@ __switch_data:
>  	.quad	__mmap_switched
>  	.quad	__bss_start			// x6
>  	.quad	__bss_stop			// x7
> -	.quad	processor_id			// x4
>  	.quad	__fdt_pointer			// x5
>  	.quad	memstart_addr			// x6
>  	.quad	init_thread_union + THREAD_START_SP // sp
> @@ -457,11 +455,10 @@ __mmap_switched:
>  	str	xzr, [x6], #8			// Clear BSS
>  	b	1b
>  2:
> -	ldp	x4, x5, [x3], #16
> +	ldr	x5, [x3], #8
>  	ldr	x6, [x3], #8

Here it would be possible to instead do:

-	ldp	x4, x5, [x3], #16
+	ldp	x5, x6, [x3], #16
-	ldr	x6, [x3], #8

But given this will change in a later patch anyway I guess it doesn't
matter either way.

Other that those comments, the patch looks good to me:

Reviewed-by: Mark Rutland <mark.rutland at arm.com>

Mark.

>  	ldr	x16, [x3]
>  	mov	sp, x16
> -	str	x22, [x4]			// Save processor ID
>  	str	x21, [x5]			// Save FDT pointer
>  	str	x24, [x6]			// Save PHYS_OFFSET
>  	mov	x29, #0
> @@ -633,8 +630,7 @@ ENTRY(secondary_startup)
>  	/*
>  	 * Common entry point for secondary CPUs.
>  	 */
> -	mrs	x22, midr_el1			// x22=cpuid
> -	mov	x0, x22
> +	mrs	x0, midr_el1
>  	bl	lookup_processor_type
>  	mov	x23, x0				// x23=current cpu_table
>  	cbz	x23, __error_p			// invalid processor (x23=0)?
> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
> index e8420f635bd4..8b82ef19b81b 100644
> --- a/arch/arm64/kernel/setup.c
> +++ b/arch/arm64/kernel/setup.c
> @@ -63,9 +63,6 @@
>  #include <asm/psci.h>
>  #include <asm/efi.h>
>  
> -unsigned int processor_id;
> -EXPORT_SYMBOL(processor_id);
> -
>  unsigned long elf_hwcap __read_mostly;
>  EXPORT_SYMBOL_GPL(elf_hwcap);
>  
> -- 
> 1.8.3.2
> 
> 



More information about the linux-arm-kernel mailing list