mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
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: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit d8ed442a00)
Signed-off-by: Mark Brown <broonie@linaro.org>
Conflicts:
arch/arm64/kernel/smp.c
This commit is contained in:
committed by
Mark Brown
parent
7b1f792f1f
commit
dabf5d44b1
@@ -138,8 +138,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 __cpuinit os_lock_notify(struct notifier_block *self,
|
||||
@@ -158,8 +156,9 @@ static struct notifier_block __cpuinitdata os_lock_nb = {
|
||||
static int __cpuinit 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);
|
||||
|
||||
@@ -159,6 +159,7 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
|
||||
*/
|
||||
notify_cpu_starting(cpu);
|
||||
|
||||
local_dbg_enable();
|
||||
local_irq_enable();
|
||||
local_fiq_enable();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user