diff --git a/arch/z80/src/common/up_doirq.c b/arch/z80/src/common/up_doirq.c index f9c9f72bba..951dedc04e 100644 --- a/arch/z80/src/common/up_doirq.c +++ b/arch/z80/src/common/up_doirq.c @@ -84,7 +84,7 @@ FAR chipreg_t *up_doirq(ubyte irq, FAR chipreg_t *regs) #else if (irq < NR_IRQS) { - /* Indicate that we have enter IRQ processing logic */ + /* Indicate that we have entered IRQ processing logic */ IRQ_ENTER(irq, regs); @@ -104,3 +104,4 @@ FAR chipreg_t *up_doirq(ubyte irq, FAR chipreg_t *regs) return regs; #endif } + diff --git a/arch/z80/src/z8/switch.h b/arch/z80/src/z8/switch.h index 2bd452e4e1..708ce59440 100644 --- a/arch/z80/src/z8/switch.h +++ b/arch/z80/src/z8/switch.h @@ -116,6 +116,7 @@ do { \ g_z8irqstate.state = Z8_IRQSTATE_ENTRY; \ g_z8irqstate.regs = (regs); \ + up_maskask_irq(irq); \ } while (0) /* The following macro is used when the system exits interrupt handling logic */ @@ -123,6 +124,7 @@ #define IRQ_LEAVE(irq) \ do { \ g_z8irqstate.state = Z8_IRQSTATE_NONE; \ + up_enable_irq(irq); \ } while (0) /* The following macro is used to sample the interrupt state (as a opaque handle) */