[rtems commit] bsps: Fix empty interrupt handler entry
Sebastian Huber
sebh at rtems.org
Fri Feb 28 07:59:27 UTC 2014
Module: rtems
Branch: master
Commit: 6faf789314aff183d128dc5436eb4278ebd4fc11
Changeset: http://git.rtems.org/rtems/commit/?id=6faf789314aff183d128dc5436eb4278ebd4fc11
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Feb 26 15:45:02 2014 +0100
bsps: Fix empty interrupt handler entry
The vector number of spurious interrupts was wrong after the interrupt
handler removal on SMP configurations.
---
c/src/lib/libbsp/shared/src/irq-generic.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/c/src/lib/libbsp/shared/src/irq-generic.c b/c/src/lib/libbsp/shared/src/irq-generic.c
index f31b397..610fe40 100644
--- a/c/src/lib/libbsp/shared/src/irq-generic.c
+++ b/c/src/lib/libbsp/shared/src/irq-generic.c
@@ -88,11 +88,12 @@ static inline bool bsp_interrupt_is_empty_handler_entry(
}
static inline void bsp_interrupt_clear_handler_entry(
- bsp_interrupt_handler_entry *e
+ bsp_interrupt_handler_entry *e,
+ rtems_vector_number vector
)
{
e->handler = bsp_interrupt_handler_empty;
- e->arg = NULL;
+ e->arg = (void *) vector;
e->info = NULL;
e->next = NULL;
}
@@ -138,7 +139,7 @@ static bsp_interrupt_handler_entry *bsp_interrupt_allocate_handler_entry(void)
static void bsp_interrupt_free_handler_entry(bsp_interrupt_handler_entry *e)
{
#ifdef BSP_INTERRUPT_NO_HEAP_USAGE
- bsp_interrupt_clear_handler_entry(e);
+ bsp_interrupt_clear_handler_entry(e, 0);
#else
free(e);
#endif
@@ -404,7 +405,7 @@ static rtems_status_code bsp_interrupt_handler_remove(
/* Clear entry */
rtems_interrupt_disable(level);
- bsp_interrupt_clear_handler_entry(head);
+ bsp_interrupt_clear_handler_entry(head, vector);
#ifdef BSP_INTERRUPT_USE_INDEX_TABLE
bsp_interrupt_handler_index_table [vector] = 0;
#endif
More information about the vc
mailing list