[rtems commit] bsps/irq: Fix interrupt server init (SMP)

Sebastian Huber sebh at rtems.org
Thu Feb 7 10:14:12 UTC 2019


Module:    rtems
Branch:    master
Commit:    4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0
Changeset: http://git.rtems.org/rtems/commit/?id=4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Feb  7 11:13:01 2019 +0100

bsps/irq: Fix interrupt server init (SMP)

---

 bsps/shared/irq/irq-server.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/bsps/shared/irq/irq-server.c b/bsps/shared/irq/irq-server.c
index f94f0dc..7a2bc55 100644
--- a/bsps/shared/irq/irq-server.c
+++ b/bsps/shared/irq/irq-server.c
@@ -7,7 +7,7 @@
  */
 
 /*
- * Copyright (c) 2009, 2017 embedded brains GmbH.  All rights reserved.
+ * Copyright (c) 2009, 2019 embedded brains GmbH.  All rights reserved.
  *
  *  embedded brains GmbH
  *  Dornierstr. 4
@@ -550,15 +550,18 @@ rtems_status_code rtems_interrupt_server_initialize(
 
 #if defined(RTEMS_SMP)
     sc = rtems_scheduler_ident_by_processor(cpu_index, &scheduler);
-    _Assert(sc == RTEMS_SUCCESSFUL);
+    if (sc != RTEMS_SUCCESSFUL) {
+      /* Do not start an interrupt server on a processor without a scheduler */
+      continue;
+    }
 
     sc = rtems_task_set_scheduler(s->server, scheduler, priority);
     _Assert(sc == RTEMS_SUCCESSFUL);
 
+    /* Set the task to processor affinity on a best-effort basis */
     CPU_ZERO(&cpu);
     CPU_SET(cpu_index, &cpu);
-    sc = rtems_task_set_affinity(s->server, sizeof(cpu), &cpu);
-    _Assert(sc == RTEMS_SUCCESSFUL);
+    (void) rtems_task_set_affinity(s->server, sizeof(cpu), &cpu);
 #endif
 
     sc = rtems_task_start(



More information about the vc mailing list