In _isr_wrapper, the interrupt ID read from the GIC is blindly used to index into _sw_isr_table, which is only sized based on CONFIG_NUM_IRQ. It is possible for both GICv2 and GICv3 to return 1023 for a handful of scenarios, the simplest of which is a level sensitive interrupt which has subsequently become de-asserted. Borrowing from the Linux GIC implementation, a read that returns an interrupt ID of 1023 is simply ignored. Minor collateral changes to gic.h to group !_ASMLANGUAGE content together to allow this header to be used in assembler files. Signed-off-by: Luke Starrett <luke.starrett@gmail.com> |
||
|---|---|---|
| .. | ||
| exti_stm32.h | ||
| gic.h | ||
| intel_vtd.h | ||
| ioapic.h | ||
| loapic.h | ||
| sam0_eic.h | ||
| sysapic.h | ||