Subject: [PATCH v3 07/31] arm64: Process management

From: [email-masked] (Arnd Bergmann)
Date: Fri, 7 Sep 2012 19:20:16 +0000

On Friday 07 September 2012, Catalin Marinas wrote:
> The patch adds support for thread creation and context switching. The
> context switching CPU specific code is introduced with the CPU support
> patch (part of the arch/arm64/mm/proc.S file). AArch64 supports
> ASID-tagged TLBs and the ASID can be either 8 or 16-bit wide (detectable
> via the ID_AA64AFR0_EL1 register).
> 
> Signed-off-by: Will Deacon <[email-masked]>
> Signed-off-by: Catalin Marinas <[email-masked]>
> Acked-by: Tony Lindgren <[email-masked]>

Acked-by: Arnd Bergmann <[email-masked]>

But please fix a few small issues in process.c:

> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
> new file mode 100644
> index 0000000..6dfd96f
> --- /dev/null
> +++ b/arch/arm64/kernel/process.c

> +
> +extern void setup_mm_for_reboot(void);

No extern declarations in .c files, put it in a header file instead.

> +
> +/*
> + * Function pointers to optional machine specific functions
> + */
> +void (*pm_power_off)(void);
> +EXPORT_SYMBOL(pm_power_off);
> +
> +void (*pm_restart)(const char *cmd);
> +EXPORT_SYMBOL_GPL(pm_restart);
> +
>
> +void (*pm_idle)(void) = default_idle;
> +EXPORT_SYMBOL(pm_idle);

I'd make them all EXPORT_SYMBOL_GPL. External modules have no business overriding them.

> +	/*
> +	 * Whoops - the architecture was unable to reboot.
> +	 * Tell the user!
> +	 */
> +	mdelay(1000);
> +	printk("Reboot failed -- System halted\n");
> +	while (1);

This delay seems pointless.

	Arnd