[rtems commit] bsp/leon3: Fix bsp_interrupt_is_valid_vector()
Sebastian Huber
sebh at rtems.org
Thu Jul 1 14:54:46 UTC 2021
Module: rtems
Branch: master
Commit: 52fb74ca651be4dceeb0f65274cd2ee1047b5204
Changeset: http://git.rtems.org/rtems/commit/?id=52fb74ca651be4dceeb0f65274cd2ee1047b5204
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Thu Jul 1 16:32:41 2021 +0200
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(-)
diff --git a/bsps/sparc/leon3/include/bsp/irq.h b/bsps/sparc/leon3/include/bsp/irq.h
index bc1b577..45d5a8d 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(
More information about the vc
mailing list