diff --git a/arch/arm/src/armv7-a/arm_cpupause.c b/arch/arm/src/armv7-a/arm_cpupause.c index 36d1eb00584..47254183f03 100644 --- a/arch/arm/src/armv7-a/arm_cpupause.c +++ b/arch/arm/src/armv7-a/arm_cpupause.c @@ -205,7 +205,6 @@ int up_cpu_paused(int cpu) int arm_pause_handler(int irq, FAR void *context, FAR void *arg) { int cpu = this_cpu(); - int ret = OK; /* Check for false alarms. Such false could occur as a consequence of * some deadlock breaking logic that might have already serviced the SG2 @@ -215,21 +214,10 @@ int arm_pause_handler(int irq, FAR void *context, FAR void *arg) 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(); - - ret = up_cpu_paused(cpu); - - leave_critical_section(flags); + return up_cpu_paused(cpu); } - return ret; + return OK; } /****************************************************************************