RESTORE/SAVE_GICD_EREGS uses (int_id - (MIN_ESPI_ID - MIN_SPI_ID)) to get the context array index for ESPI, which will override the space of standard SPI starting from (MIN_SPI_ID + MIN_SPI_ID). However, using TOTAL_SPI_INTR_NUM to replace the above MIN_SPI_ID cannot totally fix the issue, for TOTAL_SPI_INTR_NUM is not well aligned and the array index will be rounded down by the shifting operation if being shifted more than 2 bits. It will cause buffer override again when the existing maximum SPI reaches 1019. So round up TOTAL_SPI_INTR_NUM with (1 << REG##R_SHIFT) for GICD context arrays. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Change-Id: I5be2837c42f381a62f8d46a4ecd778009b1fe059 |
||
---|---|---|
.. | ||
arm_gicv3_common.c | ||
gic-x00.c | ||
gic600_multichip.c | ||
gic600_multichip_private.h | ||
gicdv3_helpers.c | ||
gicrv3_helpers.c | ||
gicv3.mk | ||
gicv3_helpers.c | ||
gicv3_main.c | ||
gicv3_private.h |