summaryrefslogtreecommitdiffstats
path: root/bsps/shared/irq
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-02-07 11:13:01 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-02-07 11:13:59 +0100
commit4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0 (patch)
treefe75ad937b3724016b5241fff65632a5e4b431cd /bsps/shared/irq
parentscore: Fix plain priority thread queues (SMP) (diff)
downloadrtems-4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0.tar.bz2
bsps/irq: Fix interrupt server init (SMP)
Diffstat (limited to 'bsps/shared/irq')
-rw-r--r--bsps/shared/irq/irq-server.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/bsps/shared/irq/irq-server.c b/bsps/shared/irq/irq-server.c
index f94f0dc71c..7a2bc55c48 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(