summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2019-09-09 22:58:22 +0200
committerCommit Bot <commit-bot@chromium.org>2019-09-10 12:19:51 +0000
commit633e195022d29460bdcccd0b1b5562ce6dbc2e89 (patch)
tree4b4100743d4cd9b309238f1a9b4865d0cae90e86
parent4523df8fee2c8e045b47c5c73fe6f1760516a555 (diff)
downloadchrome-ec-633e195022d29460bdcccd0b1b5562ce6dbc2e89.tar.gz
chip/stm32/dma.c: don't overrun array size
On smaller models there may not be 7 channels. Found by Coverity Scan #157523 BUG=none BRANCH=none TEST=none Change-Id: I8b494c6714dfd355875c5b6069b65519e91efcc9 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1793584 Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r--chip/stm32/dma.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/chip/stm32/dma.c b/chip/stm32/dma.c
index b09213d039..5fb7c4c9a6 100644
--- a/chip/stm32/dma.c
+++ b/chip/stm32/dma.c
@@ -333,8 +333,9 @@ DECLARE_IRQ(STM32_IRQ_DMA_CHANNEL_2_3, dma_event_interrupt_channel_2_3, 1);
void dma_event_interrupt_channel_4_7(void)
{
int i;
+ const unsigned int max_chan = MIN(STM32_DMAC_CH7, STM32_DMAC_COUNT);
- for (i = STM32_DMAC_CH4; i <= STM32_DMAC_CH7; i++) {
+ for (i = STM32_DMAC_CH4; i <= max_chan; i++) {
if (STM32_DMA1_REGS->isr & STM32_DMA_ISR_TCIF(i)) {
dma_clear_isr(i);
if (dma_irq[i].cb != NULL)