summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/arm/cortex-a/trap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libcpu/arm/cortex-a/trap.c b/libcpu/arm/cortex-a/trap.c
index 3faa136677..f61b89871d 100644
--- a/libcpu/arm/cortex-a/trap.c
+++ b/libcpu/arm/cortex-a/trap.c
@@ -155,12 +155,14 @@ void rt_hw_trap_resv(struct rt_hw_exp_stack *regs)
void rt_hw_trap_irq(void)
{
void *param;
+ int int_ack;
int ir;
rt_isr_handler_t isr_func;
extern struct rt_irq_desc isr_table[];
- ir = rt_hw_interrupt_get_irq();
+ int_ack = rt_hw_interrupt_get_irq();
+ ir = int_ack & GIC_ACK_INTID_MASK;
if (ir == 1023)
{
/* Spurious interrupt */
@@ -181,7 +183,7 @@ void rt_hw_trap_irq(void)
}
/* end of interrupt */
- rt_hw_interrupt_ack(ir);
+ rt_hw_interrupt_ack(int_ack);
}
void rt_hw_trap_fiq(void)