diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-02-07 11:13:01 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-02-07 11:13:59 +0100 |
commit | 4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0 (patch) | |
tree | fe75ad937b3724016b5241fff65632a5e4b431cd | |
parent | score: Fix plain priority thread queues (SMP) (diff) | |
download | rtems-4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0.tar.bz2 |
bsps/irq: Fix interrupt server init (SMP)
-rw-r--r-- | bsps/shared/irq/irq-server.c | 11 |
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( |