From 52fb74ca651be4dceeb0f65274cd2ee1047b5204 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 1 Jul 2021 16:32:41 +0200 Subject: bsp/leon3: Fix bsp_interrupt_is_valid_vector() The fix to address CID 1399742 (NO_EFFECT) in commit f8b6359415404540864f809cbcffb8c2200261e1 introduced a bug since LEON3_IrqCtrl_EIrq == -1 in case no extended interrupts are supported by the interrupt controller. Fix this by checking for LEON3_IrqCtrl_EIrq > 0. In addition, interrupt number 0 is reserved and should not be used. --- bsps/sparc/leon3/include/bsp/irq.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'bsps') diff --git a/bsps/sparc/leon3/include/bsp/irq.h b/bsps/sparc/leon3/include/bsp/irq.h index bc1b5775e7..45d5a8de34 100644 --- a/bsps/sparc/leon3/include/bsp/irq.h +++ b/bsps/sparc/leon3/include/bsp/irq.h @@ -34,11 +34,15 @@ */ static inline bool bsp_interrupt_is_valid_vector(rtems_vector_number vector) { - if (LEON3_IrqCtrl_EIrq != 0) { + if (vector == 0) { + return false; + } + + if (LEON3_IrqCtrl_EIrq > 0) { return vector <= BSP_INTERRUPT_VECTOR_MAX_EXT; - } else { - return vector <= BSP_INTERRUPT_VECTOR_MAX_STD; } + + return vector <= BSP_INTERRUPT_VECTOR_MAX_STD; } void bsp_interrupt_set_affinity( -- cgit v1.2.3