From: Niklas Cassel Date: Thu, 22 Sep 2016 14:21:13 +0000 (+0200) Subject: cris: irq: stop loop from accessing array out of bounds X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=75e52ba125702608809726c1884046117631d0fe;p=linux-beck.git cris: irq: stop loop from accessing array out of bounds array "interrupt" only has 32 or 64 elements, depending on machine. arch/cris/arch-v32/kernel/irq.c: In function ‘init_IRQ’: arch/cris/arch-v32/kernel/irq.c:475:3: warning: iteration 32u invokes undefined behavior [-Waggressive-loop-optimizations] set_exception_vector(i, interrupt[j]); ^ arch/cris/arch-v32/kernel/irq.c:474:2: note: containing loop for (i = FIRST_IRQ, j = 0; j < NBR_INTR_VECT; i++, j++) { ^ Signed-off-by: Niklas Cassel Signed-off-by: Jesper Nilsson --- diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c index 6de8db67cb09..b07da4b695aa 100644 --- a/arch/cris/arch-v32/kernel/irq.c +++ b/arch/cris/arch-v32/kernel/irq.c @@ -471,9 +471,8 @@ init_IRQ(void) irq_set_default_host(domain); of_node_put(np); - for (i = FIRST_IRQ, j = 0; j < NBR_INTR_VECT; i++, j++) { + for (i = FIRST_IRQ, j = 0; j < NBR_INTR_VECT && j < MACH_IRQS; i++, j++) set_exception_vector(i, interrupt[j]); - } /* Mark Timer and IPI IRQs as CPU local */ irq_allocations[TIMER0_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED;