Dynamic interrupt does not work with multi-level interrupts #18570
Labels
area: Kernel
bug
The issue is a bug, or the PR is fixing a bug
priority: low
Low impact/importance bug
Milestone
There is a potential for writing into memory past
_sw_isr_table[]
due to the interrupt encoding with multi-level interrupts and dynamic interrupts. This is becausez_isr_install()
inarch/common/sw_isr_common.c
simply takes the inputirq
to calculate a linear index to_sw_isr_table[]
. However, in reality, the elements after 1st level interrupts are sparsely populated and no longer linear. For example:z_isr_install()
sets_sw_isr_table[2054]
with the ISR._sw_isr_table
is only 64 (32 + 32).The text was updated successfully, but these errors were encountered: