diff --git a/arch/arm/src/cxd56xx/cxd56_cpupause.c b/arch/arm/src/cxd56xx/cxd56_cpupause.c index 89b296b979a..c8bd4108b45 100644 --- a/arch/arm/src/cxd56xx/cxd56_cpupause.c +++ b/arch/arm/src/cxd56xx/cxd56_cpupause.c @@ -210,6 +210,13 @@ bool up_cpu_pausereq(int cpu) int up_cpu_paused(int cpu) { + /* Fistly, check if this IPI is to enable/disable IRQ */ + + if (handle_irqreq(cpu)) + { + return OK; + } + FAR struct tcb_s *tcb = this_task(); /* Update scheduler parameters */ @@ -283,13 +290,6 @@ int arm_pause_handler(int irq, void *c, FAR void *arg) putreg32(0, CXD56_CPU_P2_INT + (4 * cpu)); - /* Check if this IPI is to enable/disable IRQ */ - - if (handle_irqreq(cpu)) - { - return OK; - } - /* 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.