arch: xtensa: Fix the pause handler for SMP
Summary: - Apply the same logic added to cxd56_cpupause.c Impact: - SMP only Testing: - Tested with esp32-core:smp (QEMU) - Run smp and ostest Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
This commit is contained in:
parent
a500bd0238
commit
1914aac05f
|
@ -192,7 +192,18 @@ void xtensa_pause_handler(void)
|
|||
|
||||
if (spin_islocked(&g_cpu_paused[cpu]))
|
||||
{
|
||||
/* NOTE: up_cpu_paused() needs to be executed in a critical section
|
||||
* to ensure that this CPU holds g_cpu_irqlock. However, adding
|
||||
* a critical section in up_cpu_paused() is not a good idea,
|
||||
* because it is also called in enter_critical_section() to break
|
||||
* a deadlock
|
||||
*/
|
||||
|
||||
irqstate_t flags = enter_critical_section();
|
||||
|
||||
up_cpu_paused(cpu);
|
||||
|
||||
leave_critical_section(flags);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue