diff --git a/arch/arm/src/armv7-a/arm_cpupause.c b/arch/arm/src/armv7-a/arm_cpupause.c index 55ffbf9385..3b5b2039d2 100644 --- a/arch/arm/src/armv7-a/arm_cpupause.c +++ b/arch/arm/src/armv7-a/arm_cpupause.c @@ -188,10 +188,11 @@ int arm_pause_handler(int irq, FAR void *context) /* Check for false alarms. Such false could occur as a consequence of * some deadlock breaking logic that might have already serviced the SG2 - * interrupt by calling up_cpu_paused. + * interrupt by calling up_cpu_paused(). If the pause event has already + * been processed with g_cpu_paused[cpu] will not be locked. */ - if (spin_islocked(&g_cpu_paused[cpu])) + if (!spin_islocked(&g_cpu_paused[cpu])) { return up_cpu_paused(cpu); }