[PATCH] ARM: NOMMU: Setup VBAR/Hivecs for secondaries cores
afzal mohammed
afzal.mohd.ma at gmail.com
Tue Dec 19 03:29:54 PST 2017
Hi,
On Tue, Dec 19, 2017 at 10:23:49AM +0000, Vladimir Murzin wrote:
> With switch to dynamic exception base address setting, VBAR/Hivecs
> set only for boot CPU, but secondaries stay unaware of that. That
> might lead to weird effects when trying up to bring up secondaries.
>
> Fixes: ad475117d201 ("ARM: 8649/2: nommu: remove Hivecs configuration is asm")
Sorry, it was my incompetence not seeing the secondary CPU's case.
Was the issue observed on Cortex-R ?, and was it occuring with
CONFIG_CPU_HIGH_VECTOR enabled or disabled ?
Instead of,
> diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
> +#ifndef CONFIG_MMU
> +extern unsigned long setup_vectors_base(void);
> +#else
> +static inline unsigned long setup_vectors_base(void)
> +{
> + return 0;
> +}
> +#endif
> diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
> + setup_vectors_base();
how about,
if (!IS_ENABLED(CONFIG_MMU))
setup_vectors_base();
That would avoid #ifdef's. Also as w/ MMU, vector base is not setup
(always Hivecs), this would make clear that setup_vectors_base() is
non-existent on MMU on.
Thanks for the fix.
afzal
More information about the linux-arm-kernel
mailing list