mirror of https://gitee.com/openkylin/linux.git
ARM: 8739/1: NOMMU: Setup VBAR/Hivecs for secondaries cores
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: ad475117d2
("ARM: 8649/2: nommu: remove Hivecs configuration is asm")
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Acked-by: afzal mohammed <afzal.mohd.ma@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
c7780ab56c
commit
62d1c95d57
|
@ -88,6 +88,7 @@
|
||||||
#else /* CONFIG_MMU */
|
#else /* CONFIG_MMU */
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
|
extern unsigned long setup_vectors_base(void);
|
||||||
extern unsigned long vectors_base;
|
extern unsigned long vectors_base;
|
||||||
#define VECTORS_BASE vectors_base
|
#define VECTORS_BASE vectors_base
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -379,6 +379,9 @@ asmlinkage void secondary_start_kernel(void)
|
||||||
|
|
||||||
cpu_init();
|
cpu_init();
|
||||||
|
|
||||||
|
#ifndef CONFIG_MMU
|
||||||
|
setup_vectors_base();
|
||||||
|
#endif
|
||||||
pr_debug("CPU%u: Booted secondary processor\n", cpu);
|
pr_debug("CPU%u: Booted secondary processor\n", cpu);
|
||||||
|
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
|
|
|
@ -31,7 +31,7 @@ struct mpu_rgn_info mpu_rgn_info;
|
||||||
|
|
||||||
#ifdef CONFIG_CPU_CP15
|
#ifdef CONFIG_CPU_CP15
|
||||||
#ifdef CONFIG_CPU_HIGH_VECTOR
|
#ifdef CONFIG_CPU_HIGH_VECTOR
|
||||||
static unsigned long __init setup_vectors_base(void)
|
unsigned long setup_vectors_base(void)
|
||||||
{
|
{
|
||||||
unsigned long reg = get_cr();
|
unsigned long reg = get_cr();
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ static inline bool security_extensions_enabled(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long __init setup_vectors_base(void)
|
unsigned long setup_vectors_base(void)
|
||||||
{
|
{
|
||||||
unsigned long base = 0, reg = get_cr();
|
unsigned long base = 0, reg = get_cr();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue