aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/debug-monitors.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm64/kernel/debug-monitors.c')
-rw-r--r--arch/arm64/kernel/debug-monitors.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
index 636ba8b6240b..14ba23c61153 100644
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@ -137,7 +137,6 @@ void disable_debug_monitors(enum debug_el el)
137static void clear_os_lock(void *unused) 137static void clear_os_lock(void *unused)
138{ 138{
139 asm volatile("msr oslar_el1, %0" : : "r" (0)); 139 asm volatile("msr oslar_el1, %0" : : "r" (0));
140 isb();
141} 140}
142 141
143static int os_lock_notify(struct notifier_block *self, 142static int os_lock_notify(struct notifier_block *self,
@@ -156,8 +155,9 @@ static struct notifier_block os_lock_nb = {
156static int debug_monitors_init(void) 155static int debug_monitors_init(void)
157{ 156{
158 /* Clear the OS lock. */ 157 /* Clear the OS lock. */
159 smp_call_function(clear_os_lock, NULL, 1); 158 on_each_cpu(clear_os_lock, NULL, 1);
160 clear_os_lock(NULL); 159 isb();
160 local_dbg_enable();
161 161
162 /* Register hotplug handler. */ 162 /* Register hotplug handler. */
163 register_cpu_notifier(&os_lock_nb); 163 register_cpu_notifier(&os_lock_nb);
@@ -189,7 +189,7 @@ static void clear_regs_spsr_ss(struct pt_regs *regs)
189 189
190/* EL1 Single Step Handler hooks */ 190/* EL1 Single Step Handler hooks */
191static LIST_HEAD(step_hook); 191static LIST_HEAD(step_hook);
192DEFINE_RWLOCK(step_hook_lock); 192static DEFINE_RWLOCK(step_hook_lock);
193 193
194void register_step_hook(struct step_hook *hook) 194void register_step_hook(struct step_hook *hook)
195{ 195{
@@ -276,7 +276,7 @@ static int single_step_handler(unsigned long addr, unsigned int esr,
276 * Use reader/writer locks instead of plain spinlock. 276 * Use reader/writer locks instead of plain spinlock.
277 */ 277 */
278static LIST_HEAD(break_hook); 278static LIST_HEAD(break_hook);
279DEFINE_RWLOCK(break_hook_lock); 279static DEFINE_RWLOCK(break_hook_lock);
280 280
281void register_break_hook(struct break_hook *hook) 281void register_break_hook(struct break_hook *hook)
282{ 282{