summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/irq/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/irq/irq.c')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/irq/irq.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/irq/irq.c b/c/src/lib/libbsp/powerpc/qoriq/irq/irq.c
index 92d918fd4c..2af3c513eb 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/irq/irq.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/irq/irq.c
@@ -35,6 +35,10 @@
#include <bsp/utility.h>
#include <bsp/qoriq.h>
+#ifdef RTEMS_SMP
+#include <rtems/score/smpimpl.h>
+#endif
+
RTEMS_INTERRUPT_LOCK_DEFINE(static, lock, "QorIQ IRQ")
#define SPURIOUS 0xffff
@@ -94,6 +98,13 @@ void bsp_interrupt_dispatch(uintptr_t exception_number)
return;
}
+#ifdef RTEMS_SMP
+ if (exception_number == 36) {
+ _SMP_Inter_processor_interrupt_handler();
+ return;
+ }
+#endif
+
ev_int_iack(0, &vector);
if (vector != SPURIOUS) {