Skip to content
Snippets Groups Projects
Commit 7bc76e82 authored by Kent McLeod's avatar Kent McLeod
Browse files

gicv2: Don't translate irqInvalid into array index

This also adds a check that translating a core + irq doesn't result in
an index that is irqInvalid.
parent 51ee24fd
No related branches found
No related tags found
No related merge requests found
......@@ -207,12 +207,12 @@ static inline interrupt_t getActiveIRQ(void)
}
if (IS_IRQ_VALID(active_irq[CURRENT_CPU_INDEX()])) {
irq = active_irq[CURRENT_CPU_INDEX()] & IRQ_MASK;
irq = CORE_IRQ_TO_IDX(CURRENT_CPU_INDEX(), active_irq[CURRENT_CPU_INDEX()] & IRQ_MASK);
} else {
irq = irqInvalid;
}
return CORE_IRQ_TO_IDX(CURRENT_CPU_INDEX(), irq);
return irq;
}
/*
......
......@@ -168,6 +168,8 @@ void setIRQTrigger(irq_t irq, bool_t trigger)
BOOT_CODE void initIRQController(void)
{
/* irqInvalid cannot correspond to a valid IRQ index into the irq state array */
assert(INT_STATE_ARRAY_SIZE < irqInvalid);
dist_init();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment