diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2013-10-31 15:23:19 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-10-31 15:31:06 +0100 |
commit | e1b53274d01b5ffb6c8b2b1d55d361f628901724 (patch) | |
tree | 87bc20eb0f95e42081b811d30c1b136aa5d57a1c | |
parent | Filesystem: Use ENOTTY for default ioctl() handler (diff) | |
download | rtems-e1b53274d01b5ffb6c8b2b1d55d361f628901724.tar.bz2 |
LEON3_MP ISR: shared-IRQ setup overwrite SMP/MP ISR trap handler
Basically the shared-irq handler overwrite the SMP/MP traphandler
previously initialized with set_vector(). That caused IPIs to enter
BSP spurious handler.
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/irq/irq-shared.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c b/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c index c84eeb3a6f..16119ff58c 100644 --- a/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c +++ b/c/src/lib/libbsp/sparc/shared/irq/irq-shared.c @@ -32,6 +32,11 @@ void BSP_shared_interrupt_init(void) int i; for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) { +#if defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING) + /* Don't install IRQ handler on IPI interrupt */ + if (i == LEON3_MP_IRQ) + continue; +#endif vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10; rtems_interrupt_catch(BSP_ISR_handler, vector, &previous_isr); } |