Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 62d1c95d authored by Vladimir Murzin's avatar Vladimir Murzin Committed by Russell King
Browse files

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: ad475117 ("ARM: 8649/2: nommu: remove Hivecs configuration is asm")
Signed-off-by: default avatarVladimir Murzin <vladimir.murzin@arm.com>
Acked-by: default avatarafzal mohammed <afzal.mohd.ma@gmail.com>
Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
parent c7780ab5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@
#else /* CONFIG_MMU */

#ifndef __ASSEMBLY__
extern unsigned long setup_vectors_base(void);
extern unsigned long vectors_base;
#define VECTORS_BASE		vectors_base
#endif
+3 −0
Original line number Diff line number Diff line
@@ -379,6 +379,9 @@ asmlinkage void secondary_start_kernel(void)

	cpu_init();

#ifndef CONFIG_MMU
	setup_vectors_base();
#endif
	pr_debug("CPU%u: Booted secondary processor\n", cpu);

	preempt_disable();
+2 −2
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ struct mpu_rgn_info mpu_rgn_info;

#ifdef CONFIG_CPU_CP15
#ifdef CONFIG_CPU_HIGH_VECTOR
static unsigned long __init setup_vectors_base(void)
unsigned long setup_vectors_base(void)
{
	unsigned long reg = get_cr();

@@ -57,7 +57,7 @@ static inline bool security_extensions_enabled(void)
	return 0;
}

static unsigned long __init setup_vectors_base(void)
unsigned long setup_vectors_base(void)
{
	unsigned long base = 0, reg = get_cr();