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

Commit d8ed442a authored by Vijaya Kumar K's avatar Vijaya Kumar K Committed by Catalin Marinas
Browse files

arm64: enable processor debug state for secondary cpus



processor debug state PSTATE.D is unmasked in smp call
clear_os_lock for secondary cpus. So debug state is still
masked in normal kernel context.  With this patch, unmask
debug state on secondary boot for the cpus in normal kernel
context. Now kgdb tests passed with multicore.

Signed-off-by: default avatarVijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 9529247d
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -137,8 +137,6 @@ void disable_debug_monitors(enum debug_el el)
static void clear_os_lock(void *unused)
{
	asm volatile("msr oslar_el1, %0" : : "r" (0));
	isb();
	local_dbg_enable();
}

static int os_lock_notify(struct notifier_block *self,
@@ -157,8 +155,9 @@ static struct notifier_block os_lock_nb = {
static int debug_monitors_init(void)
{
	/* Clear the OS lock. */
	smp_call_function(clear_os_lock, NULL, 1);
	clear_os_lock(NULL);
	on_each_cpu(clear_os_lock, NULL, 1);
	isb();
	local_dbg_enable();

	/* Register hotplug handler. */
	register_cpu_notifier(&os_lock_nb);
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@ asmlinkage void secondary_start_kernel(void)
	set_cpu_online(cpu, true);
	complete(&cpu_running);

	local_dbg_enable();
	local_irq_enable();
	local_async_enable();